TPTP Problem File: DAT215^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT215^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Splay tree analysis 270
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Nip14] Nipkow (2014), Amortized Complexity Verified
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : splay_tree_analysis__270.p [Bla16]

% Status   : Theorem
% Rating   : 0.67 v8.2.0, 1.00 v8.1.0, 0.50 v7.5.0, 1.00 v7.1.0
% Syntax   : Number of formulae    :  359 (  92 unt;  72 typ;   0 def)
%            Number of atoms       :  941 ( 286 equ;   0 cnn)
%            Maximal formula atoms :   19 (   3 avg)
%            Number of connectives : 5834 ( 163   ~;   8   |;  81   &;4996   @)
%                                         (   0 <=>; 586  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   28 (  10 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :  334 ( 334   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   73 (  70 usr;   4 con; 0-6 aty)
%            Number of variables   : 1397 (  19   ^;1278   !;  26   ?;1397   :)
%                                         (  74  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:50:37.787
%------------------------------------------------------------------------------
%----Could-be-implicit typings (8)
thf(ty_t_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t,type,
    splay_2011811431op_s_t: $tType > $tType ).

thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_Tree_Otree,type,
    tree: $tType > $tType ).

thf(ty_t_List_Olist,type,
    list: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (64)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oord,type,
    ord: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Ono__bot,type,
    no_bot: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Ono__top,type,
    no_top: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Owellorder,type,
    wellorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Odense__order,type,
    dense_order: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__idom,type,
    linordered_idom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__semidom,type,
    linordered_semidom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Divides_Osemiring__numeral__div,type,
    semiring_numeral_div: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Oordered__ab__semigroup__add__imp__le,type,
    ordere236663937imp_le: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Oordered__cancel__ab__semigroup__add,type,
    ordere223160158up_add: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Ostrict__ordered__ab__semigroup__add,type,
    strict2144017051up_add: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Conditionally__Complete__Lattices_Oconditionally__complete__linorder,type,
    condit1037483654norder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_Groups_Oone__class_Oone,type,
    one_one: 
      !>[A: $tType] : A ).

thf(sy_c_Groups_Oplus__class_Oplus,type,
    plus_plus: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_List_Odistinct,type,
    distinct: 
      !>[A: $tType] : ( ( list @ A ) > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless,type,
    ord_less: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Product__Type_OPair,type,
    product_Pair: 
      !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).

thf(sy_c_Product__Type_Ocurry,type,
    product_curry: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( ( product_prod @ A @ B ) > C ) > A > B > C ) ).

thf(sy_c_Product__Type_Ointernal__case__prod,type,
    produc2004651681e_prod: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).

thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
    product_rec_prod: 
      !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).

thf(sy_c_Pure_Otype,type,
    type2: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_Set__Interval_Ofold__atLeastAtMost__nat,type,
    set_fo292404081st_nat: 
      !>[A: $tType] : ( ( nat > A > A ) > nat > nat > A > A ) ).

thf(sy_c_Set__Interval_Ofold__atLeastAtMost__nat__rel,type,
    set_fo2092542664at_rel: 
      !>[A: $tType] : ( ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) > ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) > $o ) ).

thf(sy_c_Splay__Tree_Odelete,type,
    splay_delete: 
      !>[A: $tType] : ( A > ( tree @ A ) > ( tree @ A ) ) ).

thf(sy_c_Splay__Tree_Oinsert,type,
    splay_insert: 
      !>[A: $tType] : ( A > ( tree @ A ) > ( tree @ A ) ) ).

thf(sy_c_Splay__Tree_Ois__root,type,
    splay_is_root: 
      !>[A: $tType] : ( A > ( tree @ A ) > $o ) ).

thf(sy_c_Splay__Tree_Osplay,type,
    splay_splay: 
      !>[A: $tType] : ( A > ( tree @ A ) > ( tree @ A ) ) ).

thf(sy_c_Splay__Tree_Osplay__max,type,
    splay_splay_max: 
      !>[A: $tType] : ( ( tree @ A ) > ( tree @ A ) ) ).

thf(sy_c_Splay__Tree_Osplay__rel,type,
    splay_splay_rel: 
      !>[A: $tType] : ( ( product_prod @ A @ ( tree @ A ) ) > ( product_prod @ A @ ( tree @ A ) ) > $o ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Onxt_092_060_094sub_062s_092_060_094sub_062t,type,
    splay_859309299xt_s_t: 
      !>[A: $tType] : ( ( splay_2011811431op_s_t @ A ) > ( tree @ A ) > ( tree @ A ) ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Onxt_092_060_094sub_062s_092_060_094sub_062t__rel,type,
    splay_1102316486_t_rel: 
      !>[A: $tType] : ( ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) > ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) > $o ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_ODelete,type,
    splay_705249169Delete: 
      !>[A: $tType] : ( A > ( splay_2011811431op_s_t @ A ) ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_OInsert,type,
    splay_1105473951Insert: 
      !>[A: $tType] : ( A > ( splay_2011811431op_s_t @ A ) ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_OSplay,type,
    splay_2088287777_Splay: 
      !>[A: $tType] : ( A > ( splay_2011811431op_s_t @ A ) ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_Ocase__op_092_060_094sub_062s_092_060_094sub_062t,type,
    splay_549499974op_s_t: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( A > B ) > ( A > B ) > ( splay_2011811431op_s_t @ A ) > B ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_Orec__op_092_060_094sub_062s_092_060_094sub_062t,type,
    splay_2144473850op_s_t: 
      !>[A: $tType,C: $tType] : ( ( A > C ) > ( A > C ) > ( A > C ) > ( splay_2011811431op_s_t @ A ) > C ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_Orel__op_092_060_094sub_062s_092_060_094sub_062t,type,
    splay_434753539op_s_t: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > ( splay_2011811431op_s_t @ A ) > ( splay_2011811431op_s_t @ B ) > $o ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Oop_092_060_094sub_062s_092_060_094sub_062t_Oset__op_092_060_094sub_062s_092_060_094sub_062t,type,
    splay_1816468620op_s_t: 
      !>[A: $tType] : ( ( splay_2011811431op_s_t @ A ) > ( set @ A ) ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Ot__splay,type,
    splay_914434265_splay: 
      !>[A: $tType] : ( A > ( tree @ A ) > nat ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Ot__splay__max,type,
    splay_878424299ay_max: 
      !>[A: $tType] : ( ( tree @ A ) > nat ) ).

thf(sy_c_Splay__Tree__Analysis__Base_Ot__splay__max__rel,type,
    splay_1816415694ax_rel: 
      !>[A: $tType] : ( ( tree @ A ) > ( tree @ A ) > $o ) ).

thf(sy_c_Tree_Oinorder,type,
    inorder: 
      !>[A: $tType] : ( ( tree @ A ) > ( list @ A ) ) ).

thf(sy_c_Tree_Olinorder__class_Obst,type,
    linorder_bst: 
      !>[A: $tType] : ( ( tree @ A ) > $o ) ).

thf(sy_c_Tree_Olinorder__class_Obst__eq,type,
    linorder_bst_eq: 
      !>[A: $tType] : ( ( tree @ A ) > $o ) ).

thf(sy_c_Tree_Olinorder__class_Obst__eq__rel,type,
    linorder_bst_eq_rel: 
      !>[A: $tType] : ( ( tree @ A ) > ( tree @ A ) > $o ) ).

thf(sy_c_Tree_Olinorder__class_Obst__rel,type,
    linorder_bst_rel: 
      !>[A: $tType] : ( ( tree @ A ) > ( tree @ A ) > $o ) ).

thf(sy_c_Tree_Opreorder,type,
    preorder2: 
      !>[A: $tType] : ( ( tree @ A ) > ( list @ A ) ) ).

thf(sy_c_Tree_Otree_OLeaf,type,
    leaf: 
      !>[A: $tType] : ( tree @ A ) ).

thf(sy_c_Tree_Otree_ONode,type,
    node: 
      !>[A: $tType] : ( ( tree @ A ) > A > ( tree @ A ) > ( tree @ A ) ) ).

thf(sy_c_Tree_Otree_Oset__tree,type,
    set_tree: 
      !>[A: $tType] : ( ( tree @ A ) > ( set @ A ) ) ).

thf(sy_c_Wellfounded_Oaccp,type,
    accp: 
      !>[A: $tType] : ( ( A > A > $o ) > A > $o ) ).

thf(sy_c_Wellfounded_Olex__prod,type,
    lex_prod: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ B @ B ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).

thf(sy_c_Wellfounded_Omeasure,type,
    measure: 
      !>[A: $tType] : ( ( A > nat ) > ( set @ ( product_prod @ A @ A ) ) ) ).

thf(sy_c_Wfrec_Osame__fst,type,
    same_fst: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( A > ( set @ ( product_prod @ B @ B ) ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_a____,type,
    a2: tree @ a ).

thf(sy_v_f____,type,
    f: splay_2011811431op_s_t @ a ).

%----Relevant facts (256)
thf(fact_0__C2_C,axiom,
    linorder_bst @ a @ a2 ).

% "2"
thf(fact_1_bst__delete,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A] :
          ( ( linorder_bst @ A @ T2 )
         => ( linorder_bst @ A @ ( splay_delete @ A @ A2 @ T2 ) ) ) ) ).

% bst_delete
thf(fact_2_bst__insert,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A] :
          ( ( linorder_bst @ A @ T2 )
         => ( linorder_bst @ A @ ( splay_insert @ A @ A2 @ T2 ) ) ) ) ).

% bst_insert
thf(fact_3_bst__splay__max,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A] :
          ( ( linorder_bst @ A @ T2 )
         => ( linorder_bst @ A @ ( splay_splay_max @ A @ T2 ) ) ) ) ).

% bst_splay_max
thf(fact_4_bst__eq__if__bst,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A] :
          ( ( linorder_bst @ A @ T2 )
         => ( linorder_bst_eq @ A @ T2 ) ) ) ).

% bst_eq_if_bst
thf(fact_5_nxt_092_060_094sub_062s_092_060_094sub_062t_Osimps_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,T2: tree @ A] :
          ( ( splay_859309299xt_s_t @ A @ ( splay_705249169Delete @ A @ A2 ) @ T2 )
          = ( splay_delete @ A @ A2 @ T2 ) ) ) ).

% nxt\<^sub>s\<^sub>t.simps(3)
thf(fact_6_nxt_092_060_094sub_062s_092_060_094sub_062t_Osimps_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,T2: tree @ A] :
          ( ( splay_859309299xt_s_t @ A @ ( splay_1105473951Insert @ A @ A2 ) @ T2 )
          = ( splay_insert @ A @ A2 @ T2 ) ) ) ).

% nxt\<^sub>s\<^sub>t.simps(2)
thf(fact_7_bst__splay,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A] :
          ( ( linorder_bst @ A @ T2 )
         => ( linorder_bst @ A @ ( splay_splay @ A @ A2 @ T2 ) ) ) ) ).

% bst_splay
thf(fact_8_bst_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ( linorder_bst @ A @ ( leaf @ A ) ) ) ).

% bst.simps(1)
thf(fact_9_nxt_092_060_094sub_062s_092_060_094sub_062t_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,T2: tree @ A] :
          ( ( splay_859309299xt_s_t @ A @ ( splay_2088287777_Splay @ A @ A2 ) @ T2 )
          = ( splay_splay @ A @ A2 @ T2 ) ) ) ).

% nxt\<^sub>s\<^sub>t.simps(1)
thf(fact_10_splay__max__eq__splay__ex,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A] :
          ( ( linorder_bst @ A @ T2 )
         => ? [A3: A] :
              ( ( splay_splay_max @ A @ T2 )
              = ( splay_splay @ A @ A3 @ T2 ) ) ) ) ).

% splay_max_eq_splay_ex
thf(fact_11_distinct__preorder__if__bst,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A] :
          ( ( linorder_bst @ A @ T2 )
         => ( distinct @ A @ ( preorder2 @ A @ T2 ) ) ) ) ).

% distinct_preorder_if_bst
thf(fact_12_op_092_060_094sub_062s_092_060_094sub_062t_Oinject_I3_J,axiom,
    ! [A: $tType,X3: A,Y3: A] :
      ( ( ( splay_705249169Delete @ A @ X3 )
        = ( splay_705249169Delete @ A @ Y3 ) )
      = ( X3 = Y3 ) ) ).

% op\<^sub>s\<^sub>t.inject(3)
thf(fact_13_op_092_060_094sub_062s_092_060_094sub_062t_Oinject_I2_J,axiom,
    ! [A: $tType,X2: A,Y2: A] :
      ( ( ( splay_1105473951Insert @ A @ X2 )
        = ( splay_1105473951Insert @ A @ Y2 ) )
      = ( X2 = Y2 ) ) ).

% op\<^sub>s\<^sub>t.inject(2)
thf(fact_14_op_092_060_094sub_062s_092_060_094sub_062t_Oinject_I1_J,axiom,
    ! [A: $tType,X1: A,Y1: A] :
      ( ( ( splay_2088287777_Splay @ A @ X1 )
        = ( splay_2088287777_Splay @ A @ Y1 ) )
      = ( X1 = Y1 ) ) ).

% op\<^sub>s\<^sub>t.inject(1)
thf(fact_15_splay__Leaf__iff,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,T2: tree @ A] :
          ( ( ( splay_splay @ A @ A2 @ T2 )
            = ( leaf @ A ) )
          = ( T2
            = ( leaf @ A ) ) ) ) ).

% splay_Leaf_iff
thf(fact_16_splay__max__Leaf__iff,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A] :
          ( ( ( splay_splay_max @ A @ T2 )
            = ( leaf @ A ) )
          = ( T2
            = ( leaf @ A ) ) ) ) ).

% splay_max_Leaf_iff
thf(fact_17_splay_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( splay_splay @ A @ A2 @ ( leaf @ A ) )
          = ( leaf @ A ) ) ) ).

% splay.simps(1)
thf(fact_18_splay__max_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ( ( splay_splay_max @ A @ ( leaf @ A ) )
        = ( leaf @ A ) ) ) ).

% splay_max.simps(1)
thf(fact_19_bst__eq_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ( linorder_bst_eq @ A @ ( leaf @ A ) ) ) ).

% bst_eq.simps(1)
thf(fact_20_op_092_060_094sub_062s_092_060_094sub_062t_Odistinct_I5_J,axiom,
    ! [A: $tType,X2: A,X3: A] :
      ( ( splay_1105473951Insert @ A @ X2 )
     != ( splay_705249169Delete @ A @ X3 ) ) ).

% op\<^sub>s\<^sub>t.distinct(5)
thf(fact_21_op_092_060_094sub_062s_092_060_094sub_062t_Odistinct_I3_J,axiom,
    ! [A: $tType,X1: A,X3: A] :
      ( ( splay_2088287777_Splay @ A @ X1 )
     != ( splay_705249169Delete @ A @ X3 ) ) ).

% op\<^sub>s\<^sub>t.distinct(3)
thf(fact_22_op_092_060_094sub_062s_092_060_094sub_062t_Odistinct_I1_J,axiom,
    ! [A: $tType,X1: A,X2: A] :
      ( ( splay_2088287777_Splay @ A @ X1 )
     != ( splay_1105473951Insert @ A @ X2 ) ) ).

% op\<^sub>s\<^sub>t.distinct(1)
thf(fact_23_nxt_092_060_094sub_062s_092_060_094sub_062t_Oelims,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: splay_2011811431op_s_t @ A,Xa: tree @ A,Y: tree @ A] :
          ( ( ( splay_859309299xt_s_t @ A @ X @ Xa )
            = Y )
         => ( ! [A3: A] :
                ( ( X
                  = ( splay_2088287777_Splay @ A @ A3 ) )
               => ( Y
                 != ( splay_splay @ A @ A3 @ Xa ) ) )
           => ( ! [A3: A] :
                  ( ( X
                    = ( splay_1105473951Insert @ A @ A3 ) )
                 => ( Y
                   != ( splay_insert @ A @ A3 @ Xa ) ) )
             => ~ ! [A3: A] :
                    ( ( X
                      = ( splay_705249169Delete @ A @ A3 ) )
                   => ( Y
                     != ( splay_delete @ A @ A3 @ Xa ) ) ) ) ) ) ) ).

% nxt\<^sub>s\<^sub>t.elims
thf(fact_24_op_092_060_094sub_062s_092_060_094sub_062t_Oinduct,axiom,
    ! [A: $tType,P: ( splay_2011811431op_s_t @ A ) > $o,Op_s_t: splay_2011811431op_s_t @ A] :
      ( ! [X4: A] : ( P @ ( splay_2088287777_Splay @ A @ X4 ) )
     => ( ! [X4: A] : ( P @ ( splay_1105473951Insert @ A @ X4 ) )
       => ( ! [X4: A] : ( P @ ( splay_705249169Delete @ A @ X4 ) )
         => ( P @ Op_s_t ) ) ) ) ).

% op\<^sub>s\<^sub>t.induct
thf(fact_25_nxt_092_060_094sub_062s_092_060_094sub_062t_Oinduct,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: ( splay_2011811431op_s_t @ A ) > ( tree @ A ) > $o,A0: splay_2011811431op_s_t @ A,A1: tree @ A] :
          ( ! [A3: A,X12: tree @ A] : ( P @ ( splay_2088287777_Splay @ A @ A3 ) @ X12 )
         => ( ! [A3: A,X12: tree @ A] : ( P @ ( splay_1105473951Insert @ A @ A3 ) @ X12 )
           => ( ! [A3: A,X12: tree @ A] : ( P @ ( splay_705249169Delete @ A @ A3 ) @ X12 )
             => ( P @ A0 @ A1 ) ) ) ) ) ).

% nxt\<^sub>s\<^sub>t.induct
thf(fact_26_op_092_060_094sub_062s_092_060_094sub_062t_Oexhaust,axiom,
    ! [A: $tType,Y: splay_2011811431op_s_t @ A] :
      ( ! [X12: A] :
          ( Y
         != ( splay_2088287777_Splay @ A @ X12 ) )
     => ( ! [X22: A] :
            ( Y
           != ( splay_1105473951Insert @ A @ X22 ) )
       => ~ ! [X32: A] :
              ( Y
             != ( splay_705249169Delete @ A @ X32 ) ) ) ) ).

% op\<^sub>s\<^sub>t.exhaust
thf(fact_27_op_092_060_094sub_062s_092_060_094sub_062t_Oset__cases,axiom,
    ! [A: $tType,E: A,A2: splay_2011811431op_s_t @ A] :
      ( ( member @ A @ E @ ( splay_1816468620op_s_t @ A @ A2 ) )
     => ( ( A2
         != ( splay_2088287777_Splay @ A @ E ) )
       => ( ( A2
           != ( splay_1105473951Insert @ A @ E ) )
         => ( A2
            = ( splay_705249169Delete @ A @ E ) ) ) ) ) ).

% op\<^sub>s\<^sub>t.set_cases
thf(fact_28_nxt_092_060_094sub_062s_092_060_094sub_062t_Opelims,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: splay_2011811431op_s_t @ A,Xa: tree @ A,Y: tree @ A] :
          ( ( ( splay_859309299xt_s_t @ A @ X @ Xa )
            = Y )
         => ( ( accp @ ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) @ ( splay_1102316486_t_rel @ A ) @ ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ X @ Xa ) )
           => ( ! [A3: A] :
                  ( ( X
                    = ( splay_2088287777_Splay @ A @ A3 ) )
                 => ( ( Y
                      = ( splay_splay @ A @ A3 @ Xa ) )
                   => ~ ( accp @ ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) @ ( splay_1102316486_t_rel @ A ) @ ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_2088287777_Splay @ A @ A3 ) @ Xa ) ) ) )
             => ( ! [A3: A] :
                    ( ( X
                      = ( splay_1105473951Insert @ A @ A3 ) )
                   => ( ( Y
                        = ( splay_insert @ A @ A3 @ Xa ) )
                     => ~ ( accp @ ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) @ ( splay_1102316486_t_rel @ A ) @ ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_1105473951Insert @ A @ A3 ) @ Xa ) ) ) )
               => ~ ! [A3: A] :
                      ( ( X
                        = ( splay_705249169Delete @ A @ A3 ) )
                     => ( ( Y
                          = ( splay_delete @ A @ A3 @ Xa ) )
                       => ~ ( accp @ ( product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) ) @ ( splay_1102316486_t_rel @ A ) @ ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_705249169Delete @ A @ A3 ) @ Xa ) ) ) ) ) ) ) ) ) ).

% nxt\<^sub>s\<^sub>t.pelims
thf(fact_29_nxt_092_060_094sub_062s_092_060_094sub_062t_Ocases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: product_prod @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A )] :
          ( ! [A3: A,T3: tree @ A] :
              ( X
             != ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_2088287777_Splay @ A @ A3 ) @ T3 ) )
         => ( ! [A3: A,T3: tree @ A] :
                ( X
               != ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_1105473951Insert @ A @ A3 ) @ T3 ) )
           => ~ ! [A3: A,T3: tree @ A] :
                  ( X
                 != ( product_Pair @ ( splay_2011811431op_s_t @ A ) @ ( tree @ A ) @ ( splay_705249169Delete @ A @ A3 ) @ T3 ) ) ) ) ) ).

% nxt\<^sub>s\<^sub>t.cases
thf(fact_30_op_092_060_094sub_062s_092_060_094sub_062t_Orel__cases,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,A2: splay_2011811431op_s_t @ A,B2: splay_2011811431op_s_t @ B] :
      ( ( splay_434753539op_s_t @ A @ B @ R @ A2 @ B2 )
     => ( ! [X4: A] :
            ( ( A2
              = ( splay_2088287777_Splay @ A @ X4 ) )
           => ! [Y4: B] :
                ( ( B2
                  = ( splay_2088287777_Splay @ B @ Y4 ) )
               => ~ ( R @ X4 @ Y4 ) ) )
       => ( ! [Xa2: A] :
              ( ( A2
                = ( splay_1105473951Insert @ A @ Xa2 ) )
             => ! [Ya: B] :
                  ( ( B2
                    = ( splay_1105473951Insert @ B @ Ya ) )
                 => ~ ( R @ Xa2 @ Ya ) ) )
         => ~ ! [Xb: A] :
                ( ( A2
                  = ( splay_705249169Delete @ A @ Xb ) )
               => ! [Yb: B] :
                    ( ( B2
                      = ( splay_705249169Delete @ B @ Yb ) )
                   => ~ ( R @ Xb @ Yb ) ) ) ) ) ) ).

% op\<^sub>s\<^sub>t.rel_cases
thf(fact_31_op_092_060_094sub_062s_092_060_094sub_062t_Orel__induct,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X: splay_2011811431op_s_t @ A,Y: splay_2011811431op_s_t @ B,Q: ( splay_2011811431op_s_t @ A ) > ( splay_2011811431op_s_t @ B ) > $o] :
      ( ( splay_434753539op_s_t @ A @ B @ R @ X @ Y )
     => ( ! [A12: A,B1: B] :
            ( ( R @ A12 @ B1 )
           => ( Q @ ( splay_2088287777_Splay @ A @ A12 ) @ ( splay_2088287777_Splay @ B @ B1 ) ) )
       => ( ! [A22: A,B22: B] :
              ( ( R @ A22 @ B22 )
             => ( Q @ ( splay_1105473951Insert @ A @ A22 ) @ ( splay_1105473951Insert @ B @ B22 ) ) )
         => ( ! [A32: A,B3: B] :
                ( ( R @ A32 @ B3 )
               => ( Q @ ( splay_705249169Delete @ A @ A32 ) @ ( splay_705249169Delete @ B @ B3 ) ) )
           => ( Q @ X @ Y ) ) ) ) ) ).

% op\<^sub>s\<^sub>t.rel_induct
thf(fact_32_distinct__inorder__if__bst,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A] :
          ( ( linorder_bst @ A @ T2 )
         => ( distinct @ A @ ( inorder @ A @ T2 ) ) ) ) ).

% distinct_inorder_if_bst
thf(fact_33_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I15_J,axiom,
    ! [C: $tType,A: $tType,F1: A > C,F2: A > C,F3: A > C,X3: A] :
      ( ( splay_2144473850op_s_t @ A @ C @ F1 @ F2 @ F3 @ ( splay_705249169Delete @ A @ X3 ) )
      = ( F3 @ X3 ) ) ).

% op\<^sub>s\<^sub>t.simps(15)
thf(fact_34_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I14_J,axiom,
    ! [C: $tType,A: $tType,F1: A > C,F2: A > C,F3: A > C,X2: A] :
      ( ( splay_2144473850op_s_t @ A @ C @ F1 @ F2 @ F3 @ ( splay_1105473951Insert @ A @ X2 ) )
      = ( F2 @ X2 ) ) ).

% op\<^sub>s\<^sub>t.simps(14)
thf(fact_35_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I13_J,axiom,
    ! [C: $tType,A: $tType,F1: A > C,F2: A > C,F3: A > C,X1: A] :
      ( ( splay_2144473850op_s_t @ A @ C @ F1 @ F2 @ F3 @ ( splay_2088287777_Splay @ A @ X1 ) )
      = ( F1 @ X1 ) ) ).

% op\<^sub>s\<^sub>t.simps(13)
thf(fact_36_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I12_J,axiom,
    ! [B: $tType,A: $tType,F1: A > B,F2: A > B,F3: A > B,X3: A] :
      ( ( splay_549499974op_s_t @ A @ B @ F1 @ F2 @ F3 @ ( splay_705249169Delete @ A @ X3 ) )
      = ( F3 @ X3 ) ) ).

% op\<^sub>s\<^sub>t.simps(12)
thf(fact_37_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I11_J,axiom,
    ! [B: $tType,A: $tType,F1: A > B,F2: A > B,F3: A > B,X2: A] :
      ( ( splay_549499974op_s_t @ A @ B @ F1 @ F2 @ F3 @ ( splay_1105473951Insert @ A @ X2 ) )
      = ( F2 @ X2 ) ) ).

% op\<^sub>s\<^sub>t.simps(11)
thf(fact_38_insert_Ocases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: product_prod @ A @ ( tree @ A )] :
          ~ ! [X4: A,T3: tree @ A] :
              ( X
             != ( product_Pair @ A @ ( tree @ A ) @ X4 @ T3 ) ) ) ).

% insert.cases
thf(fact_39_op_092_060_094sub_062s_092_060_094sub_062t_Orel__eq,axiom,
    ! [A: $tType] :
      ( ( splay_434753539op_s_t @ A @ A
        @ ^ [Y5: A,Z: A] : Y5 = Z )
      = ( ^ [Y5: splay_2011811431op_s_t @ A,Z: splay_2011811431op_s_t @ A] : Y5 = Z ) ) ).

% op\<^sub>s\<^sub>t.rel_eq
thf(fact_40_op_092_060_094sub_062s_092_060_094sub_062t_Orel__cong,axiom,
    ! [A: $tType,B: $tType,X: splay_2011811431op_s_t @ A,Ya2: splay_2011811431op_s_t @ A,Y: splay_2011811431op_s_t @ B,Xa: splay_2011811431op_s_t @ B,R: A > B > $o,Ra: A > B > $o] :
      ( ( X = Ya2 )
     => ( ( Y = Xa )
       => ( ! [Z2: A,Yb: B] :
              ( ( member @ A @ Z2 @ ( splay_1816468620op_s_t @ A @ Ya2 ) )
             => ( ( member @ B @ Yb @ ( splay_1816468620op_s_t @ B @ Xa ) )
               => ( ( R @ Z2 @ Yb )
                  = ( Ra @ Z2 @ Yb ) ) ) )
         => ( ( splay_434753539op_s_t @ A @ B @ R @ X @ Y )
            = ( splay_434753539op_s_t @ A @ B @ Ra @ Ya2 @ Xa ) ) ) ) ) ).

% op\<^sub>s\<^sub>t.rel_cong
thf(fact_41_op_092_060_094sub_062s_092_060_094sub_062t_Orel__refl,axiom,
    ! [B: $tType,Ra: B > B > $o,X: splay_2011811431op_s_t @ B] :
      ( ! [X4: B] : ( Ra @ X4 @ X4 )
     => ( splay_434753539op_s_t @ B @ B @ Ra @ X @ X ) ) ).

% op\<^sub>s\<^sub>t.rel_refl
thf(fact_42_op_092_060_094sub_062s_092_060_094sub_062t_Orel__mono__strong,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X: splay_2011811431op_s_t @ A,Y: splay_2011811431op_s_t @ B,Ra: A > B > $o] :
      ( ( splay_434753539op_s_t @ A @ B @ R @ X @ Y )
     => ( ! [Z2: A,Yb: B] :
            ( ( member @ A @ Z2 @ ( splay_1816468620op_s_t @ A @ X ) )
           => ( ( member @ B @ Yb @ ( splay_1816468620op_s_t @ B @ Y ) )
             => ( ( R @ Z2 @ Yb )
               => ( Ra @ Z2 @ Yb ) ) ) )
       => ( splay_434753539op_s_t @ A @ B @ Ra @ X @ Y ) ) ) ).

% op\<^sub>s\<^sub>t.rel_mono_strong
thf(fact_43_op_092_060_094sub_062s_092_060_094sub_062t_Orel__refl__strong,axiom,
    ! [A: $tType,X: splay_2011811431op_s_t @ A,Ra: A > A > $o] :
      ( ! [Z2: A] :
          ( ( member @ A @ Z2 @ ( splay_1816468620op_s_t @ A @ X ) )
         => ( Ra @ Z2 @ Z2 ) )
     => ( splay_434753539op_s_t @ A @ A @ Ra @ X @ X ) ) ).

% op\<^sub>s\<^sub>t.rel_refl_strong
thf(fact_44_op_092_060_094sub_062s_092_060_094sub_062t_Orel__intros_I1_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X1: A,Y1: B] :
      ( ( R @ X1 @ Y1 )
     => ( splay_434753539op_s_t @ A @ B @ R @ ( splay_2088287777_Splay @ A @ X1 ) @ ( splay_2088287777_Splay @ B @ Y1 ) ) ) ).

% op\<^sub>s\<^sub>t.rel_intros(1)
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A4: set @ A] :
      ( ( collect @ A
        @ ^ [X5: A] : ( member @ A @ X5 @ A4 ) )
      = A4 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X4: A] :
          ( ( P @ X4 )
          = ( Q @ X4 ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F: A > B,G: A > B] :
      ( ! [X4: A] :
          ( ( F @ X4 )
          = ( G @ X4 ) )
     => ( F = G ) ) ).

% ext
thf(fact_49_op_092_060_094sub_062s_092_060_094sub_062t_Orel__intros_I2_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X2: A,Y2: B] :
      ( ( R @ X2 @ Y2 )
     => ( splay_434753539op_s_t @ A @ B @ R @ ( splay_1105473951Insert @ A @ X2 ) @ ( splay_1105473951Insert @ B @ Y2 ) ) ) ).

% op\<^sub>s\<^sub>t.rel_intros(2)
thf(fact_50_op_092_060_094sub_062s_092_060_094sub_062t_Orel__intros_I3_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X3: A,Y3: B] :
      ( ( R @ X3 @ Y3 )
     => ( splay_434753539op_s_t @ A @ B @ R @ ( splay_705249169Delete @ A @ X3 ) @ ( splay_705249169Delete @ B @ Y3 ) ) ) ).

% op\<^sub>s\<^sub>t.rel_intros(3)
thf(fact_51_op_092_060_094sub_062s_092_060_094sub_062t_Orel__inject_I1_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X1: A,Y1: B] :
      ( ( splay_434753539op_s_t @ A @ B @ R @ ( splay_2088287777_Splay @ A @ X1 ) @ ( splay_2088287777_Splay @ B @ Y1 ) )
      = ( R @ X1 @ Y1 ) ) ).

% op\<^sub>s\<^sub>t.rel_inject(1)
thf(fact_52_op_092_060_094sub_062s_092_060_094sub_062t_Orel__inject_I2_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X2: A,Y2: B] :
      ( ( splay_434753539op_s_t @ A @ B @ R @ ( splay_1105473951Insert @ A @ X2 ) @ ( splay_1105473951Insert @ B @ Y2 ) )
      = ( R @ X2 @ Y2 ) ) ).

% op\<^sub>s\<^sub>t.rel_inject(2)
thf(fact_53_op_092_060_094sub_062s_092_060_094sub_062t_Orel__inject_I3_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X3: A,Y3: B] :
      ( ( splay_434753539op_s_t @ A @ B @ R @ ( splay_705249169Delete @ A @ X3 ) @ ( splay_705249169Delete @ B @ Y3 ) )
      = ( R @ X3 @ Y3 ) ) ).

% op\<^sub>s\<^sub>t.rel_inject(3)
thf(fact_54_op_092_060_094sub_062s_092_060_094sub_062t_Oset__intros_I1_J,axiom,
    ! [A: $tType,A2: A] : ( member @ A @ A2 @ ( splay_1816468620op_s_t @ A @ ( splay_2088287777_Splay @ A @ A2 ) ) ) ).

% op\<^sub>s\<^sub>t.set_intros(1)
thf(fact_55_op_092_060_094sub_062s_092_060_094sub_062t_Oset__intros_I2_J,axiom,
    ! [A: $tType,Aa: A] : ( member @ A @ Aa @ ( splay_1816468620op_s_t @ A @ ( splay_1105473951Insert @ A @ Aa ) ) ) ).

% op\<^sub>s\<^sub>t.set_intros(2)
thf(fact_56_op_092_060_094sub_062s_092_060_094sub_062t_Oset__intros_I3_J,axiom,
    ! [A: $tType,Ab: A] : ( member @ A @ Ab @ ( splay_1816468620op_s_t @ A @ ( splay_705249169Delete @ A @ Ab ) ) ) ).

% op\<^sub>s\<^sub>t.set_intros(3)
thf(fact_57_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I1_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X1: A,Y2: B] :
      ~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_2088287777_Splay @ A @ X1 ) @ ( splay_1105473951Insert @ B @ Y2 ) ) ).

% op\<^sub>s\<^sub>t.rel_distinct(1)
thf(fact_58_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I2_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,Y2: A,X1: B] :
      ~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_1105473951Insert @ A @ Y2 ) @ ( splay_2088287777_Splay @ B @ X1 ) ) ).

% op\<^sub>s\<^sub>t.rel_distinct(2)
thf(fact_59_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I3_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X1: A,Y3: B] :
      ~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_2088287777_Splay @ A @ X1 ) @ ( splay_705249169Delete @ B @ Y3 ) ) ).

% op\<^sub>s\<^sub>t.rel_distinct(3)
thf(fact_60_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I4_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,Y3: A,X1: B] :
      ~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_705249169Delete @ A @ Y3 ) @ ( splay_2088287777_Splay @ B @ X1 ) ) ).

% op\<^sub>s\<^sub>t.rel_distinct(4)
thf(fact_61_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I5_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,X2: A,Y3: B] :
      ~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_1105473951Insert @ A @ X2 ) @ ( splay_705249169Delete @ B @ Y3 ) ) ).

% op\<^sub>s\<^sub>t.rel_distinct(5)
thf(fact_62_op_092_060_094sub_062s_092_060_094sub_062t_Orel__distinct_I6_J,axiom,
    ! [A: $tType,B: $tType,R: A > B > $o,Y3: A,X2: B] :
      ~ ( splay_434753539op_s_t @ A @ B @ R @ ( splay_705249169Delete @ A @ Y3 ) @ ( splay_1105473951Insert @ B @ X2 ) ) ).

% op\<^sub>s\<^sub>t.rel_distinct(6)
thf(fact_63_op_092_060_094sub_062s_092_060_094sub_062t_Osimps_I10_J,axiom,
    ! [B: $tType,A: $tType,F1: A > B,F2: A > B,F3: A > B,X1: A] :
      ( ( splay_549499974op_s_t @ A @ B @ F1 @ F2 @ F3 @ ( splay_2088287777_Splay @ A @ X1 ) )
      = ( F1 @ X1 ) ) ).

% op\<^sub>s\<^sub>t.simps(10)
thf(fact_64_old_Oprod_Oinject,axiom,
    ! [A: $tType,B: $tType,A2: A,B2: B,A5: A,B4: B] :
      ( ( ( product_Pair @ A @ B @ A2 @ B2 )
        = ( product_Pair @ A @ B @ A5 @ B4 ) )
      = ( ( A2 = A5 )
        & ( B2 = B4 ) ) ) ).

% old.prod.inject
thf(fact_65_prod_Oinject,axiom,
    ! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y2: B] :
      ( ( ( product_Pair @ A @ B @ X1 @ X2 )
        = ( product_Pair @ A @ B @ Y1 @ Y2 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y2 ) ) ) ).

% prod.inject
thf(fact_66_splay_Opsimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( leaf @ A ) ) )
         => ( ( splay_splay @ A @ A2 @ ( leaf @ A ) )
            = ( leaf @ A ) ) ) ) ).

% splay.psimps(1)
thf(fact_67_accp__induct__rule,axiom,
    ! [A: $tType,R2: A > A > $o,A2: A,P: A > $o] :
      ( ( accp @ A @ R2 @ A2 )
     => ( ! [X4: A] :
            ( ( accp @ A @ R2 @ X4 )
           => ( ! [Y6: A] :
                  ( ( R2 @ Y6 @ X4 )
                 => ( P @ Y6 ) )
             => ( P @ X4 ) ) )
       => ( P @ A2 ) ) ) ).

% accp_induct_rule
thf(fact_68_not__accp__down,axiom,
    ! [A: $tType,R: A > A > $o,X: A] :
      ( ~ ( accp @ A @ R @ X )
     => ~ ! [Z2: A] :
            ( ( R @ Z2 @ X )
           => ( accp @ A @ R @ Z2 ) ) ) ).

% not_accp_down
thf(fact_69_accp__downward,axiom,
    ! [A: $tType,R2: A > A > $o,B2: A,A2: A] :
      ( ( accp @ A @ R2 @ B2 )
     => ( ( R2 @ A2 @ B2 )
       => ( accp @ A @ R2 @ A2 ) ) ) ).

% accp_downward
thf(fact_70_accp_Oinducts,axiom,
    ! [A: $tType,R2: A > A > $o,X: A,P: A > $o] :
      ( ( accp @ A @ R2 @ X )
     => ( ! [X4: A] :
            ( ! [Y6: A] :
                ( ( R2 @ Y6 @ X4 )
               => ( accp @ A @ R2 @ Y6 ) )
           => ( ! [Y6: A] :
                  ( ( R2 @ Y6 @ X4 )
                 => ( P @ Y6 ) )
             => ( P @ X4 ) ) )
       => ( P @ X ) ) ) ).

% accp.inducts
thf(fact_71_accp__induct,axiom,
    ! [A: $tType,R2: A > A > $o,A2: A,P: A > $o] :
      ( ( accp @ A @ R2 @ A2 )
     => ( ! [X4: A] :
            ( ( accp @ A @ R2 @ X4 )
           => ( ! [Y6: A] :
                  ( ( R2 @ Y6 @ X4 )
                 => ( P @ Y6 ) )
             => ( P @ X4 ) ) )
       => ( P @ A2 ) ) ) ).

% accp_induct
thf(fact_72_accp_Ointros,axiom,
    ! [A: $tType,R2: A > A > $o,X: A] :
      ( ! [Y4: A] :
          ( ( R2 @ Y4 @ X )
         => ( accp @ A @ R2 @ Y4 ) )
     => ( accp @ A @ R2 @ X ) ) ).

% accp.intros
thf(fact_73_surj__pair,axiom,
    ! [A: $tType,B: $tType,P2: product_prod @ A @ B] :
    ? [X4: A,Y4: B] :
      ( P2
      = ( product_Pair @ A @ B @ X4 @ Y4 ) ) ).

% surj_pair
thf(fact_74_prod__cases,axiom,
    ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,P2: product_prod @ A @ B] :
      ( ! [A3: A,B5: B] : ( P @ ( product_Pair @ A @ B @ A3 @ B5 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_75_Pair__inject,axiom,
    ! [A: $tType,B: $tType,A2: A,B2: B,A5: A,B4: B] :
      ( ( ( product_Pair @ A @ B @ A2 @ B2 )
        = ( product_Pair @ A @ B @ A5 @ B4 ) )
     => ~ ( ( A2 = A5 )
         => ( B2 != B4 ) ) ) ).

% Pair_inject
thf(fact_76_prod__cases3,axiom,
    ! [A: $tType,B: $tType,C: $tType,Y: product_prod @ A @ ( product_prod @ B @ C )] :
      ~ ! [A3: A,B5: B,C2: C] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A3 @ ( product_Pair @ B @ C @ B5 @ C2 ) ) ) ).

% prod_cases3
thf(fact_77_prod__cases4,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ~ ! [A3: A,B5: B,C2: C,D2: D] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B5 @ ( product_Pair @ C @ D @ C2 @ D2 ) ) ) ) ).

% prod_cases4
thf(fact_78_prod__cases5,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E2: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) )] :
      ~ ! [A3: A,B5: B,C2: C,D2: D,E3: E2] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ E2 ) @ C2 @ ( product_Pair @ D @ E2 @ D2 @ E3 ) ) ) ) ) ).

% prod_cases5
thf(fact_79_prod__cases6,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E2: $tType,F4: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) )] :
      ~ ! [A3: A,B5: B,C2: C,D2: D,E3: E2,F5: F4] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E2 @ F4 ) @ D2 @ ( product_Pair @ E2 @ F4 @ E3 @ F5 ) ) ) ) ) ) ).

% prod_cases6
thf(fact_80_prod__cases7,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E2: $tType,F4: $tType,G2: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) )] :
      ~ ! [A3: A,B5: B,C2: C,D2: D,E3: E2,F5: F4,G3: G2] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) @ D2 @ ( product_Pair @ E2 @ ( product_prod @ F4 @ G2 ) @ E3 @ ( product_Pair @ F4 @ G2 @ F5 @ G3 ) ) ) ) ) ) ) ).

% prod_cases7
thf(fact_81_prod__induct3,axiom,
    ! [C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ C )] :
      ( ! [A3: A,B5: B,C2: C] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A3 @ ( product_Pair @ B @ C @ B5 @ C2 ) ) )
     => ( P @ X ) ) ).

% prod_induct3
thf(fact_82_prod__induct4,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ( ! [A3: A,B5: B,C2: C,D2: D] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B5 @ ( product_Pair @ C @ D @ C2 @ D2 ) ) ) )
     => ( P @ X ) ) ).

% prod_induct4
thf(fact_83_prod__induct5,axiom,
    ! [E2: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) )] :
      ( ! [A3: A,B5: B,C2: C,D2: D,E3: E2] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E2 ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ E2 ) @ C2 @ ( product_Pair @ D @ E2 @ D2 @ E3 ) ) ) ) )
     => ( P @ X ) ) ).

% prod_induct5
thf(fact_84_prod__induct6,axiom,
    ! [F4: $tType,E2: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) )] :
      ( ! [A3: A,B5: B,C2: C,D2: D,E3: E2,F5: F4] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E2 @ F4 ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E2 @ F4 ) @ D2 @ ( product_Pair @ E2 @ F4 @ E3 @ F5 ) ) ) ) ) )
     => ( P @ X ) ) ).

% prod_induct6
thf(fact_85_prod__induct7,axiom,
    ! [G2: $tType,F4: $tType,E2: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) )] :
      ( ! [A3: A,B5: B,C2: C,D2: D,E3: E2,F5: F4,G3: G2] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) ) @ A3 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) ) @ B5 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E2 @ ( product_prod @ F4 @ G2 ) ) @ D2 @ ( product_Pair @ E2 @ ( product_prod @ F4 @ G2 ) @ E3 @ ( product_Pair @ F4 @ G2 @ F5 @ G3 ) ) ) ) ) ) )
     => ( P @ X ) ) ).

% prod_induct7
thf(fact_86_old_Oprod_Oexhaust,axiom,
    ! [A: $tType,B: $tType,Y: product_prod @ A @ B] :
      ~ ! [A3: A,B5: B] :
          ( Y
         != ( product_Pair @ A @ B @ A3 @ B5 ) ) ).

% old.prod.exhaust
thf(fact_87_old_Oprod_Oinducts,axiom,
    ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
      ( ! [A3: A,B5: B] : ( P @ ( product_Pair @ A @ B @ A3 @ B5 ) )
     => ( P @ Prod ) ) ).

% old.prod.inducts
thf(fact_88_accp_Ocases,axiom,
    ! [A: $tType,R2: A > A > $o,A2: A] :
      ( ( accp @ A @ R2 @ A2 )
     => ! [Y6: A] :
          ( ( R2 @ Y6 @ A2 )
         => ( accp @ A @ R2 @ Y6 ) ) ) ).

% accp.cases
thf(fact_89_accp_Osimps,axiom,
    ! [A: $tType] :
      ( ( accp @ A )
      = ( ^ [R3: A > A > $o,A6: A] :
          ? [X5: A] :
            ( ( A6 = X5 )
            & ! [Y7: A] :
                ( ( R3 @ Y7 @ X5 )
               => ( accp @ A @ R3 @ Y7 ) ) ) ) ) ).

% accp.simps
thf(fact_90_old_Oprod_Orec,axiom,
    ! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A2: A,B2: B] :
      ( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A2 @ B2 ) )
      = ( F1 @ A2 @ B2 ) ) ).

% old.prod.rec
thf(fact_91_in__lex__prod,axiom,
    ! [A: $tType,B: $tType,A2: A,B2: B,A5: A,B4: B,R2: set @ ( product_prod @ A @ A ),S: set @ ( product_prod @ B @ B )] :
      ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A2 @ B2 ) @ ( product_Pair @ A @ B @ A5 @ B4 ) ) @ ( lex_prod @ A @ B @ R2 @ S ) )
      = ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A2 @ A5 ) @ R2 )
        | ( ( A2 = A5 )
          & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ B2 @ B4 ) @ S ) ) ) ) ).

% in_lex_prod
thf(fact_92_splay_Opsimps_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,L: tree @ A,R2: tree @ A] :
          ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( node @ A @ L @ A2 @ R2 ) ) )
         => ( ( splay_splay @ A @ A2 @ ( node @ A @ L @ A2 @ R2 ) )
            = ( node @ A @ L @ A2 @ R2 ) ) ) ) ).

% splay.psimps(2)
thf(fact_93_internal__case__prod__conv,axiom,
    ! [B: $tType,A: $tType,C: $tType,C3: B > C > A,A2: B,B2: C] :
      ( ( produc2004651681e_prod @ B @ C @ A @ C3 @ ( product_Pair @ B @ C @ A2 @ B2 ) )
      = ( C3 @ A2 @ B2 ) ) ).

% internal_case_prod_conv
thf(fact_94_ssubst__Pair__rhs,axiom,
    ! [B: $tType,A: $tType,R2: A,S: B,R: set @ ( product_prod @ A @ B ),S2: B] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S ) @ R )
     => ( ( S2 = S )
       => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S2 ) @ R ) ) ) ).

% ssubst_Pair_rhs
thf(fact_95_curry__conv,axiom,
    ! [A: $tType,C: $tType,B: $tType] :
      ( ( product_curry @ B @ C @ A )
      = ( ^ [F6: ( product_prod @ B @ C ) > A,A6: B,B6: C] : ( F6 @ ( product_Pair @ B @ C @ A6 @ B6 ) ) ) ) ).

% curry_conv
thf(fact_96_curryI,axiom,
    ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
      ( ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) )
     => ( product_curry @ A @ B @ $o @ F @ A2 @ B2 ) ) ).

% curryI
thf(fact_97_tree_Oinject,axiom,
    ! [A: $tType,X21: tree @ A,X222: A,X23: tree @ A,Y21: tree @ A,Y22: A,Y23: tree @ A] :
      ( ( ( node @ A @ X21 @ X222 @ X23 )
        = ( node @ A @ Y21 @ Y22 @ Y23 ) )
      = ( ( X21 = Y21 )
        & ( X222 = Y22 )
        & ( X23 = Y23 ) ) ) ).

% tree.inject
thf(fact_98_t__splay__max_Oinduct,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: ( tree @ A ) > $o,A0: tree @ A] :
          ( ( P @ ( leaf @ A ) )
         => ( ! [L2: tree @ A,B5: A] : ( P @ ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) )
           => ( ! [L2: tree @ A,B5: A,Rl: tree @ A,C2: A,Rr: tree @ A] :
                  ( ( ( Rr
                     != ( leaf @ A ) )
                   => ( P @ Rr ) )
                 => ( P @ ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) ) )
             => ( P @ A0 ) ) ) ) ) ).

% t_splay_max.induct
thf(fact_99_t__splay__max_Ocases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ( X
           != ( leaf @ A ) )
         => ( ! [L2: tree @ A,B5: A] :
                ( X
               != ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) )
           => ~ ! [L2: tree @ A,B5: A,Rl: tree @ A,C2: A,Rr: tree @ A] :
                  ( X
                 != ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) ) ) ) ) ).

% t_splay_max.cases
thf(fact_100__092_060Phi_062_Oinduct,axiom,
    ! [A: $tType,P: ( tree @ A ) > $o,A0: tree @ A] :
      ( ( P @ ( leaf @ A ) )
     => ( ! [L2: tree @ A,A3: A,R4: tree @ A] :
            ( ( P @ L2 )
           => ( ( P @ R4 )
             => ( P @ ( node @ A @ L2 @ A3 @ R4 ) ) ) )
       => ( P @ A0 ) ) ) ).

% \<Phi>.induct
thf(fact_101__092_060Phi_062_Ocases,axiom,
    ! [A: $tType,X: tree @ A] :
      ( ( X
       != ( leaf @ A ) )
     => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
            ( X
           != ( node @ A @ L2 @ A3 @ R4 ) ) ) ).

% \<Phi>.cases
thf(fact_102_bst__eq_Oinduct,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: ( tree @ A ) > $o,A0: tree @ A] :
          ( ( P @ ( leaf @ A ) )
         => ( ! [L2: tree @ A,A3: A,R4: tree @ A] :
                ( ( P @ L2 )
               => ( ( P @ R4 )
                 => ( P @ ( node @ A @ L2 @ A3 @ R4 ) ) ) )
           => ( P @ A0 ) ) ) ) ).

% bst_eq.induct
thf(fact_103_bst__eq_Ocases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ( X
           != ( leaf @ A ) )
         => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                ( X
               != ( node @ A @ L2 @ A3 @ R4 ) ) ) ) ).

% bst_eq.cases
thf(fact_104_mirror_Oinduct,axiom,
    ! [A: $tType,P: ( tree @ A ) > $o,A0: tree @ A] :
      ( ( P @ ( leaf @ A ) )
     => ( ! [L2: tree @ A,X4: A,R4: tree @ A] :
            ( ( P @ R4 )
           => ( ( P @ L2 )
             => ( P @ ( node @ A @ L2 @ X4 @ R4 ) ) ) )
       => ( P @ A0 ) ) ) ).

% mirror.induct
thf(fact_105_tree_Oexhaust,axiom,
    ! [A: $tType,Y: tree @ A] :
      ( ( Y
       != ( leaf @ A ) )
     => ~ ! [X212: tree @ A,X223: A,X232: tree @ A] :
            ( Y
           != ( node @ A @ X212 @ X223 @ X232 ) ) ) ).

% tree.exhaust
thf(fact_106_neq__Leaf__iff,axiom,
    ! [A: $tType,T2: tree @ A] :
      ( ( T2
       != ( leaf @ A ) )
      = ( ? [L3: tree @ A,A6: A,R3: tree @ A] :
            ( T2
            = ( node @ A @ L3 @ A6 @ R3 ) ) ) ) ).

% neq_Leaf_iff
thf(fact_107_tree_Oinduct,axiom,
    ! [A: $tType,P: ( tree @ A ) > $o,Tree: tree @ A] :
      ( ( P @ ( leaf @ A ) )
     => ( ! [X12: tree @ A,X22: A,X32: tree @ A] :
            ( ( P @ X12 )
           => ( ( P @ X32 )
             => ( P @ ( node @ A @ X12 @ X22 @ X32 ) ) ) )
       => ( P @ Tree ) ) ) ).

% tree.induct
thf(fact_108_tree_Odistinct_I1_J,axiom,
    ! [A: $tType,X21: tree @ A,X222: A,X23: tree @ A] :
      ( ( leaf @ A )
     != ( node @ A @ X21 @ X222 @ X23 ) ) ).

% tree.distinct(1)
thf(fact_109_splay_Osimps_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,L: tree @ A,R2: tree @ A] :
          ( ( splay_splay @ A @ A2 @ ( node @ A @ L @ A2 @ R2 ) )
          = ( node @ A @ L @ A2 @ R2 ) ) ) ).

% splay.simps(2)
thf(fact_110_curryE,axiom,
    ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
      ( ( product_curry @ A @ B @ $o @ F @ A2 @ B2 )
     => ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).

% curryE
thf(fact_111_curryD,axiom,
    ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
      ( ( product_curry @ A @ B @ $o @ F @ A2 @ B2 )
     => ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).

% curryD
thf(fact_112_splay__not__Leaf,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A] :
          ( ( T2
           != ( leaf @ A ) )
         => ? [L2: tree @ A,X4: A,R4: tree @ A] :
              ( ( splay_splay @ A @ A2 @ T2 )
              = ( node @ A @ L2 @ X4 @ R4 ) ) ) ) ).

% splay_not_Leaf
thf(fact_113_t__splay_Ocases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: product_prod @ A @ ( tree @ A )] :
          ( ! [A3: A] :
              ( X
             != ( product_Pair @ A @ ( tree @ A ) @ A3 @ ( leaf @ A ) ) )
         => ~ ! [A3: A,L2: tree @ A,B5: A,R4: tree @ A] :
                ( X
               != ( product_Pair @ A @ ( tree @ A ) @ A3 @ ( node @ A @ L2 @ B5 @ R4 ) ) ) ) ) ).

% t_splay.cases
thf(fact_114_splay__max__Leaf,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,L: tree @ A,A2: A,R2: tree @ A] :
          ( ( ( splay_splay_max @ A @ T2 )
            = ( node @ A @ L @ A2 @ R2 ) )
         => ( R2
            = ( leaf @ A ) ) ) ) ).

% splay_max_Leaf
thf(fact_115_splay__max_Osimps_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [La: tree @ A,A2: A] :
          ( ( splay_splay_max @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) )
          = ( node @ A @ La @ A2 @ ( leaf @ A ) ) ) ) ).

% splay_max.simps(2)
thf(fact_116_splay_Opsimps_I13_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,X: A,B2: A,La: tree @ A,Lb: tree @ A] :
          ( ( ord_less @ A @ A2 @ X )
         => ( ( ord_less @ A @ B2 @ X )
           => ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ La @ A2 @ ( node @ A @ Lb @ B2 @ ( leaf @ A ) ) ) ) )
             => ( ( splay_splay @ A @ X @ ( node @ A @ La @ A2 @ ( node @ A @ Lb @ B2 @ ( leaf @ A ) ) ) )
                = ( node @ A @ ( node @ A @ La @ A2 @ Lb ) @ B2 @ ( leaf @ A ) ) ) ) ) ) ) ).

% splay.psimps(13)
thf(fact_117_splay_Opsimps_I12_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,X: A,B2: A,La: tree @ A,Rb: tree @ A] :
          ( ( ord_less @ A @ A2 @ X )
         => ( ( ord_less @ A @ X @ B2 )
           => ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) ) )
             => ( ( splay_splay @ A @ X @ ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) )
                = ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) ) ) ) ) ) ).

% splay.psimps(12)
thf(fact_118_splay_Opsimps_I10_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,X: A,L: tree @ A] :
          ( ( ord_less @ A @ A2 @ X )
         => ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ L @ A2 @ ( leaf @ A ) ) ) )
           => ( ( splay_splay @ A @ X @ ( node @ A @ L @ A2 @ ( leaf @ A ) ) )
              = ( node @ A @ L @ A2 @ ( leaf @ A ) ) ) ) ) ) ).

% splay.psimps(10)
thf(fact_119_splay_Opsimps_I7_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,B2: A,A2: A,La: tree @ A,Rb: tree @ A] :
          ( ( ord_less @ A @ X @ B2 )
         => ( ( ord_less @ A @ A2 @ X )
           => ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) ) )
             => ( ( splay_splay @ A @ X @ ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) )
                = ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) ) ) ) ) ) ).

% splay.psimps(7)
thf(fact_120_splay_Opsimps_I5_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,A2: A,B2: A,Ra2: tree @ A,Rb: tree @ A] :
          ( ( ord_less @ A @ X @ A2 )
         => ( ( ord_less @ A @ X @ B2 )
           => ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ X @ ( node @ A @ ( node @ A @ ( leaf @ A ) @ A2 @ Ra2 ) @ B2 @ Rb ) ) )
             => ( ( splay_splay @ A @ X @ ( node @ A @ ( node @ A @ ( leaf @ A ) @ A2 @ Ra2 ) @ B2 @ Rb ) )
                = ( node @ A @ ( leaf @ A ) @ A2 @ ( node @ A @ Ra2 @ B2 @ Rb ) ) ) ) ) ) ) ).

% splay.psimps(5)
thf(fact_121_splay_Osimps_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,La: tree @ A,Ra2: tree @ A,Rb: tree @ A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( splay_splay @ A @ A2 @ ( node @ A @ ( node @ A @ La @ A2 @ Ra2 ) @ B2 @ Rb ) )
            = ( node @ A @ La @ A2 @ ( node @ A @ Ra2 @ B2 @ Rb ) ) ) ) ) ).

% splay.simps(3)
thf(fact_122_splay_Osimps_I9_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,Lb: tree @ A,La: tree @ A,Ra2: tree @ A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( splay_splay @ A @ A2 @ ( node @ A @ Lb @ B2 @ ( node @ A @ La @ A2 @ Ra2 ) ) )
            = ( node @ A @ ( node @ A @ Lb @ B2 @ La ) @ A2 @ Ra2 ) ) ) ) ).

% splay.simps(9)
thf(fact_123_splay_Osimps_I13_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,X: A,B2: A,La: tree @ A,Lb: tree @ A] :
          ( ( ord_less @ A @ A2 @ X )
         => ( ( ord_less @ A @ B2 @ X )
           => ( ( splay_splay @ A @ X @ ( node @ A @ La @ A2 @ ( node @ A @ Lb @ B2 @ ( leaf @ A ) ) ) )
              = ( node @ A @ ( node @ A @ La @ A2 @ Lb ) @ B2 @ ( leaf @ A ) ) ) ) ) ) ).

% splay.simps(13)
thf(fact_124_splay_Osimps_I12_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,X: A,B2: A,La: tree @ A,Rb: tree @ A] :
          ( ( ord_less @ A @ A2 @ X )
         => ( ( ord_less @ A @ X @ B2 )
           => ( ( splay_splay @ A @ X @ ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) )
              = ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) ) ) ) ) ).

% splay.simps(12)
thf(fact_125_splay_Osimps_I10_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,X: A,L: tree @ A] :
          ( ( ord_less @ A @ A2 @ X )
         => ( ( splay_splay @ A @ X @ ( node @ A @ L @ A2 @ ( leaf @ A ) ) )
            = ( node @ A @ L @ A2 @ ( leaf @ A ) ) ) ) ) ).

% splay.simps(10)
thf(fact_126_splay_Osimps_I7_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,B2: A,A2: A,La: tree @ A,Rb: tree @ A] :
          ( ( ord_less @ A @ X @ B2 )
         => ( ( ord_less @ A @ A2 @ X )
           => ( ( splay_splay @ A @ X @ ( node @ A @ ( node @ A @ La @ A2 @ ( leaf @ A ) ) @ B2 @ Rb ) )
              = ( node @ A @ La @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ Rb ) ) ) ) ) ) ).

% splay.simps(7)
thf(fact_127_splay_Osimps_I5_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,A2: A,B2: A,Ra2: tree @ A,Rb: tree @ A] :
          ( ( ord_less @ A @ X @ A2 )
         => ( ( ord_less @ A @ X @ B2 )
           => ( ( splay_splay @ A @ X @ ( node @ A @ ( node @ A @ ( leaf @ A ) @ A2 @ Ra2 ) @ B2 @ Rb ) )
              = ( node @ A @ ( leaf @ A ) @ A2 @ ( node @ A @ Ra2 @ B2 @ Rb ) ) ) ) ) ) ).

% splay.simps(5)
thf(fact_128_splay_Osimps_I4_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,R2: tree @ A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( splay_splay @ A @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) )
            = ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) ) ) ) ).

% splay.simps(4)
thf(fact_129_splay_Opsimps_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,La: tree @ A,Ra2: tree @ A,Rb: tree @ A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( node @ A @ ( node @ A @ La @ A2 @ Ra2 ) @ B2 @ Rb ) ) )
           => ( ( splay_splay @ A @ A2 @ ( node @ A @ ( node @ A @ La @ A2 @ Ra2 ) @ B2 @ Rb ) )
              = ( node @ A @ La @ A2 @ ( node @ A @ Ra2 @ B2 @ Rb ) ) ) ) ) ) ).

% splay.psimps(3)
thf(fact_130_splay_Opsimps_I9_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,Lb: tree @ A,La: tree @ A,Ra2: tree @ A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( node @ A @ Lb @ B2 @ ( node @ A @ La @ A2 @ Ra2 ) ) ) )
           => ( ( splay_splay @ A @ A2 @ ( node @ A @ Lb @ B2 @ ( node @ A @ La @ A2 @ Ra2 ) ) )
              = ( node @ A @ ( node @ A @ Lb @ B2 @ La ) @ A2 @ Ra2 ) ) ) ) ) ).

% splay.psimps(9)
thf(fact_131_splay_Opsimps_I4_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,R2: tree @ A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( accp @ ( product_prod @ A @ ( tree @ A ) ) @ ( splay_splay_rel @ A ) @ ( product_Pair @ A @ ( tree @ A ) @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) ) )
           => ( ( splay_splay @ A @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) )
              = ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) ) ) ) ) ).

% splay.psimps(4)
thf(fact_132_in__measure,axiom,
    ! [A: $tType,X: A,Y: A,F: A > nat] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ ( measure @ A @ F ) )
      = ( ord_less @ nat @ ( F @ X ) @ ( F @ Y ) ) ) ).

% in_measure
thf(fact_133_same__fstI,axiom,
    ! [B: $tType,A: $tType,P: A > $o,X: A,Y8: B,Y: B,R: A > ( set @ ( product_prod @ B @ B ) )] :
      ( ( P @ X )
     => ( ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ Y8 @ Y ) @ ( R @ X ) )
       => ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X @ Y8 ) @ ( product_Pair @ A @ B @ X @ Y ) ) @ ( same_fst @ A @ B @ P @ R ) ) ) ) ).

% same_fstI
thf(fact_134_splay__bstR,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A,L: tree @ A,E: A,R2: tree @ A,X: A] :
          ( ( linorder_bst @ A @ T2 )
         => ( ( ( splay_splay @ A @ A2 @ T2 )
              = ( node @ A @ L @ E @ R2 ) )
           => ( ( member @ A @ X @ ( set_tree @ A @ R2 ) )
             => ( ord_less @ A @ A2 @ X ) ) ) ) ) ).

% splay_bstR
thf(fact_135_splay__bstL,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A,L: tree @ A,E: A,R2: tree @ A,X: A] :
          ( ( linorder_bst @ A @ T2 )
         => ( ( ( splay_splay @ A @ A2 @ T2 )
              = ( node @ A @ L @ E @ R2 ) )
           => ( ( member @ A @ X @ ( set_tree @ A @ L ) )
             => ( ord_less @ A @ X @ A2 ) ) ) ) ) ).

% splay_bstL
thf(fact_136_set__splay,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,T2: tree @ A] :
          ( ( set_tree @ A @ ( splay_splay @ A @ A2 @ T2 ) )
          = ( set_tree @ A @ T2 ) ) ) ).

% set_splay
thf(fact_137_set__splay__max,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A] :
          ( ( set_tree @ A @ ( splay_splay_max @ A @ T2 ) )
          = ( set_tree @ A @ T2 ) ) ) ).

% set_splay_max
thf(fact_138_tree_Oset__cases,axiom,
    ! [A: $tType,E: A,A2: tree @ A] :
      ( ( member @ A @ E @ ( set_tree @ A @ A2 ) )
     => ( ! [Z1: tree @ A] :
            ( ? [Z22: A,Z3: tree @ A] :
                ( A2
                = ( node @ A @ Z1 @ Z22 @ Z3 ) )
           => ~ ( member @ A @ E @ ( set_tree @ A @ Z1 ) ) )
       => ( ! [Z1: tree @ A,Z3: tree @ A] :
              ( A2
             != ( node @ A @ Z1 @ E @ Z3 ) )
         => ~ ! [Z1: tree @ A,Z22: A,Z3: tree @ A] :
                ( ( A2
                  = ( node @ A @ Z1 @ Z22 @ Z3 ) )
               => ~ ( member @ A @ E @ ( set_tree @ A @ Z3 ) ) ) ) ) ) ).

% tree.set_cases
thf(fact_139_tree_Oset__intros_I1_J,axiom,
    ! [A: $tType,X: A,A1: tree @ A,A23: A,A33: tree @ A] :
      ( ( member @ A @ X @ ( set_tree @ A @ A1 ) )
     => ( member @ A @ X @ ( set_tree @ A @ ( node @ A @ A1 @ A23 @ A33 ) ) ) ) ).

% tree.set_intros(1)
thf(fact_140_tree_Oset__intros_I2_J,axiom,
    ! [A: $tType,A23: A,A1: tree @ A,A33: tree @ A] : ( member @ A @ A23 @ ( set_tree @ A @ ( node @ A @ A1 @ A23 @ A33 ) ) ) ).

% tree.set_intros(2)
thf(fact_141_tree_Oset__intros_I3_J,axiom,
    ! [A: $tType,Xa: A,A33: tree @ A,A1: tree @ A,A23: A] :
      ( ( member @ A @ Xa @ ( set_tree @ A @ A33 ) )
     => ( member @ A @ Xa @ ( set_tree @ A @ ( node @ A @ A1 @ A23 @ A33 ) ) ) ) ).

% tree.set_intros(3)
thf(fact_142_splay__to__root,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A,T4: tree @ A] :
          ( ( linorder_bst @ A @ T2 )
         => ( ( ( splay_splay @ A @ A2 @ T2 )
              = T4 )
           => ( ( member @ A @ A2 @ ( set_tree @ A @ T2 ) )
              = ( ? [L3: tree @ A,R3: tree @ A] :
                    ( T4
                    = ( node @ A @ L3 @ A2 @ R3 ) ) ) ) ) ) ) ).

% splay_to_root
thf(fact_143_is__root__splay,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A] :
          ( ( linorder_bst @ A @ T2 )
         => ( ( splay_is_root @ A @ A2 @ ( splay_splay @ A @ A2 @ T2 ) )
            = ( member @ A @ A2 @ ( set_tree @ A @ T2 ) ) ) ) ) ).

% is_root_splay
thf(fact_144_ex__in__set__tree,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A] :
          ( ( T2
           != ( leaf @ A ) )
         => ( ( linorder_bst @ A @ T2 )
           => ? [X4: A] :
                ( ( member @ A @ X4 @ ( set_tree @ A @ T2 ) )
                & ( ( splay_splay @ A @ X4 @ T2 )
                  = ( splay_splay @ A @ A2 @ T2 ) )
                & ( ( splay_914434265_splay @ A @ X4 @ T2 )
                  = ( splay_914434265_splay @ A @ A2 @ T2 ) ) ) ) ) ) ).

% ex_in_set_tree
thf(fact_145_bst_Oelims_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A,Y: $o] :
          ( ( ( linorder_bst @ A @ X )
            = Y )
         => ( ( ( X
                = ( leaf @ A ) )
             => ~ Y )
           => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                  ( ( X
                    = ( node @ A @ L2 @ A3 @ R4 ) )
                 => ( Y
                    = ( ~ ( ( linorder_bst @ A @ L2 )
                          & ( linorder_bst @ A @ R4 )
                          & ! [X5: A] :
                              ( ( member @ A @ X5 @ ( set_tree @ A @ L2 ) )
                             => ( ord_less @ A @ X5 @ A3 ) )
                          & ! [X5: A] :
                              ( ( member @ A @ X5 @ ( set_tree @ A @ R4 ) )
                             => ( ord_less @ A @ A3 @ X5 ) ) ) ) ) ) ) ) ) ).

% bst.elims(1)
thf(fact_146_bst_Oelims_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ( linorder_bst @ A @ X )
         => ( ( X
             != ( leaf @ A ) )
           => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                  ( ( X
                    = ( node @ A @ L2 @ A3 @ R4 ) )
                 => ~ ( ( linorder_bst @ A @ L2 )
                      & ( linorder_bst @ A @ R4 )
                      & ! [X6: A] :
                          ( ( member @ A @ X6 @ ( set_tree @ A @ L2 ) )
                         => ( ord_less @ A @ X6 @ A3 ) )
                      & ! [X6: A] :
                          ( ( member @ A @ X6 @ ( set_tree @ A @ R4 ) )
                         => ( ord_less @ A @ A3 @ X6 ) ) ) ) ) ) ) ).

% bst.elims(2)
thf(fact_147_bst_Oelims_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ~ ( linorder_bst @ A @ X )
         => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                ( ( X
                  = ( node @ A @ L2 @ A3 @ R4 ) )
               => ( ( linorder_bst @ A @ L2 )
                  & ( linorder_bst @ A @ R4 )
                  & ! [X4: A] :
                      ( ( member @ A @ X4 @ ( set_tree @ A @ L2 ) )
                     => ( ord_less @ A @ X4 @ A3 ) )
                  & ! [X4: A] :
                      ( ( member @ A @ X4 @ ( set_tree @ A @ R4 ) )
                     => ( ord_less @ A @ A3 @ X4 ) ) ) ) ) ) ).

% bst.elims(3)
thf(fact_148_bst_Osimps_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [L: tree @ A,A2: A,R2: tree @ A] :
          ( ( linorder_bst @ A @ ( node @ A @ L @ A2 @ R2 ) )
          = ( ( linorder_bst @ A @ L )
            & ( linorder_bst @ A @ R2 )
            & ! [X5: A] :
                ( ( member @ A @ X5 @ ( set_tree @ A @ L ) )
               => ( ord_less @ A @ X5 @ A2 ) )
            & ! [X5: A] :
                ( ( member @ A @ X5 @ ( set_tree @ A @ R2 ) )
               => ( ord_less @ A @ A2 @ X5 ) ) ) ) ) ).

% bst.simps(2)
thf(fact_149_bst_Opelims_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ( linorder_bst @ A @ X )
         => ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ X )
           => ( ( ( X
                  = ( leaf @ A ) )
               => ~ ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( leaf @ A ) ) )
             => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                    ( ( X
                      = ( node @ A @ L2 @ A3 @ R4 ) )
                   => ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) )
                     => ~ ( ( linorder_bst @ A @ L2 )
                          & ( linorder_bst @ A @ R4 )
                          & ! [X6: A] :
                              ( ( member @ A @ X6 @ ( set_tree @ A @ L2 ) )
                             => ( ord_less @ A @ X6 @ A3 ) )
                          & ! [X6: A] :
                              ( ( member @ A @ X6 @ ( set_tree @ A @ R4 ) )
                             => ( ord_less @ A @ A3 @ X6 ) ) ) ) ) ) ) ) ) ).

% bst.pelims(2)
thf(fact_150_bst_Opelims_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A,Y: $o] :
          ( ( ( linorder_bst @ A @ X )
            = Y )
         => ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ X )
           => ( ( ( X
                  = ( leaf @ A ) )
               => ( Y
                 => ~ ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( leaf @ A ) ) ) )
             => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                    ( ( X
                      = ( node @ A @ L2 @ A3 @ R4 ) )
                   => ( ( Y
                        = ( ( linorder_bst @ A @ L2 )
                          & ( linorder_bst @ A @ R4 )
                          & ! [X5: A] :
                              ( ( member @ A @ X5 @ ( set_tree @ A @ L2 ) )
                             => ( ord_less @ A @ X5 @ A3 ) )
                          & ! [X5: A] :
                              ( ( member @ A @ X5 @ ( set_tree @ A @ R4 ) )
                             => ( ord_less @ A @ A3 @ X5 ) ) ) )
                     => ~ ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) ) ) ) ) ) ) ) ).

% bst.pelims(1)
thf(fact_151_bst_Opelims_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ~ ( linorder_bst @ A @ X )
         => ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ X )
           => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                  ( ( X
                    = ( node @ A @ L2 @ A3 @ R4 ) )
                 => ( ( accp @ ( tree @ A ) @ ( linorder_bst_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) )
                   => ( ( linorder_bst @ A @ L2 )
                      & ( linorder_bst @ A @ R4 )
                      & ! [X4: A] :
                          ( ( member @ A @ X4 @ ( set_tree @ A @ L2 ) )
                         => ( ord_less @ A @ X4 @ A3 ) )
                      & ! [X4: A] :
                          ( ( member @ A @ X4 @ ( set_tree @ A @ R4 ) )
                         => ( ord_less @ A @ A3 @ X4 ) ) ) ) ) ) ) ) ).

% bst.pelims(3)
thf(fact_152_t__splay__simps_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,R2: tree @ A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( leaf @ A ) @ B2 @ R2 ) )
            = ( one_one @ nat ) ) ) ) ).

% t_splay_simps(2)
thf(fact_153_t__splay__simps_I6_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,L: tree @ A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( leaf @ A ) ) )
            = ( one_one @ nat ) ) ) ) ).

% t_splay_simps(6)
thf(fact_154_bst__eq_Oelims_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A,Y: $o] :
          ( ( ( linorder_bst_eq @ A @ X )
            = Y )
         => ( ( ( X
                = ( leaf @ A ) )
             => ~ Y )
           => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                  ( ( X
                    = ( node @ A @ L2 @ A3 @ R4 ) )
                 => ( Y
                    = ( ~ ( ( linorder_bst_eq @ A @ L2 )
                          & ( linorder_bst_eq @ A @ R4 )
                          & ! [X5: A] :
                              ( ( member @ A @ X5 @ ( set_tree @ A @ L2 ) )
                             => ( ord_less_eq @ A @ X5 @ A3 ) )
                          & ! [X5: A] :
                              ( ( member @ A @ X5 @ ( set_tree @ A @ R4 ) )
                             => ( ord_less_eq @ A @ A3 @ X5 ) ) ) ) ) ) ) ) ) ).

% bst_eq.elims(1)
thf(fact_155_t__splay__simps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,L: tree @ A,R2: tree @ A] :
          ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ A2 @ R2 ) )
          = ( one_one @ nat ) ) ) ).

% t_splay_simps(1)
thf(fact_156_t__splay__simps_I7_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,L: tree @ A,Rl2: tree @ A,Rr2: tree @ A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ A2 @ Rr2 ) ) )
            = ( one_one @ nat ) ) ) ) ).

% t_splay_simps(7)
thf(fact_157_t__splay__simps_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,Ll: tree @ A,Lr: tree @ A,R2: tree @ A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ A2 @ Lr ) @ B2 @ R2 ) )
            = ( one_one @ nat ) ) ) ) ).

% t_splay_simps(3)
thf(fact_158_accp__subset__induct,axiom,
    ! [A: $tType,D3: A > $o,R: A > A > $o,X: A,P: A > $o] :
      ( ( ord_less_eq @ ( A > $o ) @ D3 @ ( accp @ A @ R ) )
     => ( ! [X4: A,Z2: A] :
            ( ( D3 @ X4 )
           => ( ( R @ Z2 @ X4 )
             => ( D3 @ Z2 ) ) )
       => ( ( D3 @ X )
         => ( ! [X4: A] :
                ( ( D3 @ X4 )
               => ( ! [Z4: A] :
                      ( ( R @ Z4 @ X4 )
                     => ( P @ Z4 ) )
                 => ( P @ X4 ) ) )
           => ( P @ X ) ) ) ) ) ).

% accp_subset_induct
thf(fact_159_accp__subset,axiom,
    ! [A: $tType,R1: A > A > $o,R22: A > A > $o] :
      ( ( ord_less_eq @ ( A > A > $o ) @ R1 @ R22 )
     => ( ord_less_eq @ ( A > $o ) @ ( accp @ A @ R22 ) @ ( accp @ A @ R1 ) ) ) ).

% accp_subset
thf(fact_160_op_092_060_094sub_062s_092_060_094sub_062t_Orel__mono,axiom,
    ! [B: $tType,A: $tType,R: A > B > $o,Ra: A > B > $o] :
      ( ( ord_less_eq @ ( A > B > $o ) @ R @ Ra )
     => ( ord_less_eq @ ( ( splay_2011811431op_s_t @ A ) > ( splay_2011811431op_s_t @ B ) > $o ) @ ( splay_434753539op_s_t @ A @ B @ R ) @ ( splay_434753539op_s_t @ A @ B @ Ra ) ) ) ).

% op\<^sub>s\<^sub>t.rel_mono
thf(fact_161_t__splay_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( splay_914434265_splay @ A @ A2 @ ( leaf @ A ) )
          = ( one_one @ nat ) ) ) ).

% t_splay.simps(1)
thf(fact_162_bst__eq_Oelims_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ~ ( linorder_bst_eq @ A @ X )
         => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                ( ( X
                  = ( node @ A @ L2 @ A3 @ R4 ) )
               => ( ( linorder_bst_eq @ A @ L2 )
                  & ( linorder_bst_eq @ A @ R4 )
                  & ! [X4: A] :
                      ( ( member @ A @ X4 @ ( set_tree @ A @ L2 ) )
                     => ( ord_less_eq @ A @ X4 @ A3 ) )
                  & ! [X4: A] :
                      ( ( member @ A @ X4 @ ( set_tree @ A @ R4 ) )
                     => ( ord_less_eq @ A @ A3 @ X4 ) ) ) ) ) ) ).

% bst_eq.elims(3)
thf(fact_163_bst__eq_Osimps_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [L: tree @ A,A2: A,R2: tree @ A] :
          ( ( linorder_bst_eq @ A @ ( node @ A @ L @ A2 @ R2 ) )
          = ( ( linorder_bst_eq @ A @ L )
            & ( linorder_bst_eq @ A @ R2 )
            & ! [X5: A] :
                ( ( member @ A @ X5 @ ( set_tree @ A @ L ) )
               => ( ord_less_eq @ A @ X5 @ A2 ) )
            & ! [X5: A] :
                ( ( member @ A @ X5 @ ( set_tree @ A @ R2 ) )
               => ( ord_less_eq @ A @ A2 @ X5 ) ) ) ) ) ).

% bst_eq.simps(2)
thf(fact_164_splay__max__eq__splay,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [T2: tree @ A,A2: A] :
          ( ( linorder_bst @ A @ T2 )
         => ( ! [X4: A] :
                ( ( member @ A @ X4 @ ( set_tree @ A @ T2 ) )
               => ( ord_less_eq @ A @ X4 @ A2 ) )
           => ( ( splay_splay_max @ A @ T2 )
              = ( splay_splay @ A @ A2 @ T2 ) ) ) ) ) ).

% splay_max_eq_splay
thf(fact_165_bst__eq_Oelims_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ( linorder_bst_eq @ A @ X )
         => ( ( X
             != ( leaf @ A ) )
           => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                  ( ( X
                    = ( node @ A @ L2 @ A3 @ R4 ) )
                 => ~ ( ( linorder_bst_eq @ A @ L2 )
                      & ( linorder_bst_eq @ A @ R4 )
                      & ! [X6: A] :
                          ( ( member @ A @ X6 @ ( set_tree @ A @ L2 ) )
                         => ( ord_less_eq @ A @ X6 @ A3 ) )
                      & ! [X6: A] :
                          ( ( member @ A @ X6 @ ( set_tree @ A @ R4 ) )
                         => ( ord_less_eq @ A @ A3 @ X6 ) ) ) ) ) ) ) ).

% bst_eq.elims(2)
thf(fact_166_bst__eq_Opelims_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ( linorder_bst_eq @ A @ X )
         => ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ X )
           => ( ( ( X
                  = ( leaf @ A ) )
               => ~ ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( leaf @ A ) ) )
             => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                    ( ( X
                      = ( node @ A @ L2 @ A3 @ R4 ) )
                   => ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) )
                     => ~ ( ( linorder_bst_eq @ A @ L2 )
                          & ( linorder_bst_eq @ A @ R4 )
                          & ! [X6: A] :
                              ( ( member @ A @ X6 @ ( set_tree @ A @ L2 ) )
                             => ( ord_less_eq @ A @ X6 @ A3 ) )
                          & ! [X6: A] :
                              ( ( member @ A @ X6 @ ( set_tree @ A @ R4 ) )
                             => ( ord_less_eq @ A @ A3 @ X6 ) ) ) ) ) ) ) ) ) ).

% bst_eq.pelims(2)
thf(fact_167_bst__eq_Opelims_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A,Y: $o] :
          ( ( ( linorder_bst_eq @ A @ X )
            = Y )
         => ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ X )
           => ( ( ( X
                  = ( leaf @ A ) )
               => ( Y
                 => ~ ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( leaf @ A ) ) ) )
             => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                    ( ( X
                      = ( node @ A @ L2 @ A3 @ R4 ) )
                   => ( ( Y
                        = ( ( linorder_bst_eq @ A @ L2 )
                          & ( linorder_bst_eq @ A @ R4 )
                          & ! [X5: A] :
                              ( ( member @ A @ X5 @ ( set_tree @ A @ L2 ) )
                             => ( ord_less_eq @ A @ X5 @ A3 ) )
                          & ! [X5: A] :
                              ( ( member @ A @ X5 @ ( set_tree @ A @ R4 ) )
                             => ( ord_less_eq @ A @ A3 @ X5 ) ) ) )
                     => ~ ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) ) ) ) ) ) ) ) ).

% bst_eq.pelims(1)
thf(fact_168_bst__eq_Opelims_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A] :
          ( ~ ( linorder_bst_eq @ A @ X )
         => ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ X )
           => ~ ! [L2: tree @ A,A3: A,R4: tree @ A] :
                  ( ( X
                    = ( node @ A @ L2 @ A3 @ R4 ) )
                 => ( ( accp @ ( tree @ A ) @ ( linorder_bst_eq_rel @ A ) @ ( node @ A @ L2 @ A3 @ R4 ) )
                   => ( ( linorder_bst_eq @ A @ L2 )
                      & ( linorder_bst_eq @ A @ R4 )
                      & ! [X4: A] :
                          ( ( member @ A @ X4 @ ( set_tree @ A @ L2 ) )
                         => ( ord_less_eq @ A @ X4 @ A3 ) )
                      & ! [X4: A] :
                          ( ( member @ A @ X4 @ ( set_tree @ A @ R4 ) )
                         => ( ord_less_eq @ A @ A3 @ X4 ) ) ) ) ) ) ) ) ).

% bst_eq.pelims(3)
thf(fact_169_less__numeral__extra_I4_J,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ~ ( ord_less @ A @ ( one_one @ A ) @ ( one_one @ A ) ) ) ).

% less_numeral_extra(4)
thf(fact_170_t__splay__simps_I4_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A,Ll: tree @ A,Lr: tree @ A,R2: tree @ A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ A2 @ C3 )
           => ( ( ( Ll
                  = ( leaf @ A ) )
               => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ C3 @ Lr ) @ B2 @ R2 ) )
                  = ( one_one @ nat ) ) )
              & ( ( Ll
                 != ( leaf @ A ) )
               => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ C3 @ Lr ) @ B2 @ R2 ) )
                  = ( plus_plus @ nat @ ( splay_914434265_splay @ A @ A2 @ Ll ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ).

% t_splay_simps(4)
thf(fact_171_t__splay__simps_I5_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A,Lr: tree @ A,Ll: tree @ A,R2: tree @ A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ C3 @ A2 )
           => ( ( ( Lr
                  = ( leaf @ A ) )
               => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ C3 @ Lr ) @ B2 @ R2 ) )
                  = ( one_one @ nat ) ) )
              & ( ( Lr
                 != ( leaf @ A ) )
               => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ ( node @ A @ Ll @ C3 @ Lr ) @ B2 @ R2 ) )
                  = ( plus_plus @ nat @ ( splay_914434265_splay @ A @ A2 @ Lr ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ).

% t_splay_simps(5)
thf(fact_172_t__splay__simps_I9_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C3: A,Rr2: tree @ A,L: tree @ A,Rl2: tree @ A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C3 @ A2 )
           => ( ( ( Rr2
                  = ( leaf @ A ) )
               => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
                  = ( one_one @ nat ) ) )
              & ( ( Rr2
                 != ( leaf @ A ) )
               => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
                  = ( plus_plus @ nat @ ( splay_914434265_splay @ A @ A2 @ Rr2 ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ).

% t_splay_simps(9)
thf(fact_173_t__splay__simps_I8_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C3: A,Rl2: tree @ A,L: tree @ A,Rr2: tree @ A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ A2 @ C3 )
           => ( ( ( Rl2
                  = ( leaf @ A ) )
               => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
                  = ( one_one @ nat ) ) )
              & ( ( Rl2
                 != ( leaf @ A ) )
               => ( ( splay_914434265_splay @ A @ A2 @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
                  = ( plus_plus @ nat @ ( splay_914434265_splay @ A @ A2 @ Rl2 ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ).

% t_splay_simps(8)
thf(fact_174_nat__add__left__cancel__less,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( plus_plus @ nat @ K @ M ) @ ( plus_plus @ nat @ K @ N ) )
      = ( ord_less @ nat @ M @ N ) ) ).

% nat_add_left_cancel_less
thf(fact_175_add__less__cancel__left,axiom,
    ! [A: $tType] :
      ( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
     => ! [C3: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( plus_plus @ A @ C3 @ A2 ) @ ( plus_plus @ A @ C3 @ B2 ) )
          = ( ord_less @ A @ A2 @ B2 ) ) ) ).

% add_less_cancel_left
thf(fact_176_add__less__cancel__right,axiom,
    ! [A: $tType] :
      ( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
     => ! [A2: A,C3: A,B2: A] :
          ( ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ C3 ) )
          = ( ord_less @ A @ A2 @ B2 ) ) ) ).

% add_less_cancel_right
thf(fact_177_nat__neq__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( M != N )
      = ( ( ord_less @ nat @ M @ N )
        | ( ord_less @ nat @ N @ M ) ) ) ).

% nat_neq_iff
thf(fact_178_less__not__refl,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ N ) ).

% less_not_refl
thf(fact_179_less__not__refl2,axiom,
    ! [N: nat,M: nat] :
      ( ( ord_less @ nat @ N @ M )
     => ( M != N ) ) ).

% less_not_refl2
thf(fact_180_less__not__refl3,axiom,
    ! [S: nat,T2: nat] :
      ( ( ord_less @ nat @ S @ T2 )
     => ( S != T2 ) ) ).

% less_not_refl3
thf(fact_181_measure__induct,axiom,
    ! [A: $tType,F: A > nat,P: A > $o,A2: A] :
      ( ! [X4: A] :
          ( ! [Y6: A] :
              ( ( ord_less @ nat @ ( F @ Y6 ) @ ( F @ X4 ) )
             => ( P @ Y6 ) )
         => ( P @ X4 ) )
     => ( P @ A2 ) ) ).

% measure_induct
thf(fact_182_less__irrefl__nat,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ N ) ).

% less_irrefl_nat
thf(fact_183_nat__less__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ! [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N2 )
             => ( P @ M2 ) )
         => ( P @ N2 ) )
     => ( P @ N ) ) ).

% nat_less_induct
thf(fact_184_infinite__descent,axiom,
    ! [P: nat > $o,N: nat] :
      ( ! [N2: nat] :
          ( ~ ( P @ N2 )
         => ? [M2: nat] :
              ( ( ord_less @ nat @ M2 @ N2 )
              & ~ ( P @ M2 ) ) )
     => ( P @ N ) ) ).

% infinite_descent
thf(fact_185_linorder__neqE__nat,axiom,
    ! [X: nat,Y: nat] :
      ( ( X != Y )
     => ( ~ ( ord_less @ nat @ X @ Y )
       => ( ord_less @ nat @ Y @ X ) ) ) ).

% linorder_neqE_nat
thf(fact_186_measure__induct__rule,axiom,
    ! [A: $tType,F: A > nat,P: A > $o,A2: A] :
      ( ! [X4: A] :
          ( ! [Y6: A] :
              ( ( ord_less @ nat @ ( F @ Y6 ) @ ( F @ X4 ) )
             => ( P @ Y6 ) )
         => ( P @ X4 ) )
     => ( P @ A2 ) ) ).

% measure_induct_rule
thf(fact_187_infinite__descent__measure,axiom,
    ! [A: $tType,P: A > $o,V: A > nat,X: A] :
      ( ! [X4: A] :
          ( ~ ( P @ X4 )
         => ? [Y6: A] :
              ( ( ord_less @ nat @ ( V @ Y6 ) @ ( V @ X4 ) )
              & ~ ( P @ Y6 ) ) )
     => ( P @ X ) ) ).

% infinite_descent_measure
thf(fact_188_less__mono__imp__le__mono,axiom,
    ! [F: nat > nat,I: nat,J: nat] :
      ( ! [I2: nat,J2: nat] :
          ( ( ord_less @ nat @ I2 @ J2 )
         => ( ord_less @ nat @ ( F @ I2 ) @ ( F @ J2 ) ) )
     => ( ( ord_less_eq @ nat @ I @ J )
       => ( ord_less_eq @ nat @ ( F @ I ) @ ( F @ J ) ) ) ) ).

% less_mono_imp_le_mono
thf(fact_189_le__neq__implies__less,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ M @ N )
     => ( ( M != N )
       => ( ord_less @ nat @ M @ N ) ) ) ).

% le_neq_implies_less
thf(fact_190_less__or__eq__imp__le,axiom,
    ! [M: nat,N: nat] :
      ( ( ( ord_less @ nat @ M @ N )
        | ( M = N ) )
     => ( ord_less_eq @ nat @ M @ N ) ) ).

% less_or_eq_imp_le
thf(fact_191_le__eq__less__or__eq,axiom,
    ( ( ord_less_eq @ nat )
    = ( ^ [M3: nat,N3: nat] :
          ( ( ord_less @ nat @ M3 @ N3 )
          | ( M3 = N3 ) ) ) ) ).

% le_eq_less_or_eq
thf(fact_192_less__imp__le__nat,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( ord_less_eq @ nat @ M @ N ) ) ).

% less_imp_le_nat
thf(fact_193_nat__less__le,axiom,
    ( ( ord_less @ nat )
    = ( ^ [M3: nat,N3: nat] :
          ( ( ord_less_eq @ nat @ M3 @ N3 )
          & ( M3 != N3 ) ) ) ) ).

% nat_less_le
thf(fact_194_add__less__imp__less__right,axiom,
    ! [A: $tType] :
      ( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
     => ! [A2: A,C3: A,B2: A] :
          ( ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ C3 ) )
         => ( ord_less @ A @ A2 @ B2 ) ) ) ).

% add_less_imp_less_right
thf(fact_195_add__less__imp__less__left,axiom,
    ! [A: $tType] :
      ( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
     => ! [C3: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( plus_plus @ A @ C3 @ A2 ) @ ( plus_plus @ A @ C3 @ B2 ) )
         => ( ord_less @ A @ A2 @ B2 ) ) ) ).

% add_less_imp_less_left
thf(fact_196_add__strict__right__mono,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ C3 ) ) ) ) ).

% add_strict_right_mono
thf(fact_197_add__strict__left__mono,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ord_less @ A @ ( plus_plus @ A @ C3 @ A2 ) @ ( plus_plus @ A @ C3 @ B2 ) ) ) ) ).

% add_strict_left_mono
thf(fact_198_add__strict__mono,axiom,
    ! [A: $tType] :
      ( ( strict2144017051up_add @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A,D4: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ C3 @ D4 )
           => ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ D4 ) ) ) ) ) ).

% add_strict_mono
thf(fact_199_add__mono__thms__linordered__field_I1_J,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [I: A,J: A,K: A,L: A] :
          ( ( ( ord_less @ A @ I @ J )
            & ( K = L ) )
         => ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).

% add_mono_thms_linordered_field(1)
thf(fact_200_add__mono__thms__linordered__field_I2_J,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [I: A,J: A,K: A,L: A] :
          ( ( ( I = J )
            & ( ord_less @ A @ K @ L ) )
         => ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).

% add_mono_thms_linordered_field(2)
thf(fact_201_add__mono__thms__linordered__field_I5_J,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [I: A,J: A,K: A,L: A] :
          ( ( ( ord_less @ A @ I @ J )
            & ( ord_less @ A @ K @ L ) )
         => ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).

% add_mono_thms_linordered_field(5)
thf(fact_202_less__add__eq__less,axiom,
    ! [K: nat,L: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ K @ L )
     => ( ( ( plus_plus @ nat @ M @ L )
          = ( plus_plus @ nat @ K @ N ) )
       => ( ord_less @ nat @ M @ N ) ) ) ).

% less_add_eq_less
thf(fact_203_trans__less__add2,axiom,
    ! [I: nat,J: nat,M: nat] :
      ( ( ord_less @ nat @ I @ J )
     => ( ord_less @ nat @ I @ ( plus_plus @ nat @ M @ J ) ) ) ).

% trans_less_add2
thf(fact_204_trans__less__add1,axiom,
    ! [I: nat,J: nat,M: nat] :
      ( ( ord_less @ nat @ I @ J )
     => ( ord_less @ nat @ I @ ( plus_plus @ nat @ J @ M ) ) ) ).

% trans_less_add1
thf(fact_205_add__less__mono1,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less @ nat @ I @ J )
     => ( ord_less @ nat @ ( plus_plus @ nat @ I @ K ) @ ( plus_plus @ nat @ J @ K ) ) ) ).

% add_less_mono1
thf(fact_206_not__add__less2,axiom,
    ! [J: nat,I: nat] :
      ~ ( ord_less @ nat @ ( plus_plus @ nat @ J @ I ) @ I ) ).

% not_add_less2
thf(fact_207_not__add__less1,axiom,
    ! [I: nat,J: nat] :
      ~ ( ord_less @ nat @ ( plus_plus @ nat @ I @ J ) @ I ) ).

% not_add_less1
thf(fact_208_add__less__mono,axiom,
    ! [I: nat,J: nat,K: nat,L: nat] :
      ( ( ord_less @ nat @ I @ J )
     => ( ( ord_less @ nat @ K @ L )
       => ( ord_less @ nat @ ( plus_plus @ nat @ I @ K ) @ ( plus_plus @ nat @ J @ L ) ) ) ) ).

% add_less_mono
thf(fact_209_add__lessD1,axiom,
    ! [I: nat,J: nat,K: nat] :
      ( ( ord_less @ nat @ ( plus_plus @ nat @ I @ J ) @ K )
     => ( ord_less @ nat @ I @ K ) ) ).

% add_lessD1
thf(fact_210_mono__nat__linear__lb,axiom,
    ! [F: nat > nat,M: nat,K: nat] :
      ( ! [M4: nat,N2: nat] :
          ( ( ord_less @ nat @ M4 @ N2 )
         => ( ord_less @ nat @ ( F @ M4 ) @ ( F @ N2 ) ) )
     => ( ord_less_eq @ nat @ ( plus_plus @ nat @ ( F @ M ) @ K ) @ ( F @ ( plus_plus @ nat @ M @ K ) ) ) ) ).

% mono_nat_linear_lb
thf(fact_211_add__less__le__mono,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A,D4: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ C3 @ D4 )
           => ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ D4 ) ) ) ) ) ).

% add_less_le_mono
thf(fact_212_add__le__less__mono,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A,D4: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ C3 @ D4 )
           => ( ord_less @ A @ ( plus_plus @ A @ A2 @ C3 ) @ ( plus_plus @ A @ B2 @ D4 ) ) ) ) ) ).

% add_le_less_mono
thf(fact_213_add__mono__thms__linordered__field_I3_J,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [I: A,J: A,K: A,L: A] :
          ( ( ( ord_less @ A @ I @ J )
            & ( ord_less_eq @ A @ K @ L ) )
         => ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).

% add_mono_thms_linordered_field(3)
thf(fact_214_add__mono__thms__linordered__field_I4_J,axiom,
    ! [A: $tType] :
      ( ( ordere223160158up_add @ A @ ( type2 @ A ) )
     => ! [I: A,J: A,K: A,L: A] :
          ( ( ( ord_less_eq @ A @ I @ J )
            & ( ord_less @ A @ K @ L ) )
         => ( ord_less @ A @ ( plus_plus @ A @ I @ K ) @ ( plus_plus @ A @ J @ L ) ) ) ) ).

% add_mono_thms_linordered_field(4)
thf(fact_215_discrete,axiom,
    ! [A: $tType] :
      ( ( semiring_numeral_div @ A @ ( type2 @ A ) )
     => ( ( ord_less @ A )
        = ( ^ [A6: A] : ( ord_less_eq @ A @ ( plus_plus @ A @ A6 @ ( one_one @ A ) ) ) ) ) ) ).

% discrete
thf(fact_216_fold__atLeastAtMost__nat_Oinduct,axiom,
    ! [A: $tType,P: ( nat > A > A ) > nat > nat > A > $o,A0: nat > A > A,A1: nat,A23: nat,A33: A] :
      ( ! [F5: nat > A > A,A3: nat,B5: nat,Acc: A] :
          ( ( ~ ( ord_less @ nat @ B5 @ A3 )
           => ( P @ F5 @ ( plus_plus @ nat @ A3 @ ( one_one @ nat ) ) @ B5 @ ( F5 @ A3 @ Acc ) ) )
         => ( P @ F5 @ A3 @ B5 @ Acc ) )
     => ( P @ A0 @ A1 @ A23 @ A33 ) ) ).

% fold_atLeastAtMost_nat.induct
thf(fact_217_less__add__one,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ! [A2: A] : ( ord_less @ A @ A2 @ ( plus_plus @ A @ A2 @ ( one_one @ A ) ) ) ) ).

% less_add_one
thf(fact_218_linorder__neqE__linordered__idom,axiom,
    ! [A: $tType] :
      ( ( linordered_idom @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( X != Y )
         => ( ~ ( ord_less @ A @ X @ Y )
           => ( ord_less @ A @ Y @ X ) ) ) ) ).

% linorder_neqE_linordered_idom
thf(fact_219_ex__has__greatest__nat__lemma,axiom,
    ! [A: $tType,P: A > $o,K: A,M: A > nat,N: nat] :
      ( ( P @ K )
     => ( ! [X4: A] :
            ( ( P @ X4 )
           => ? [Y6: A] :
                ( ( P @ Y6 )
                & ~ ( ord_less_eq @ nat @ ( M @ Y6 ) @ ( M @ X4 ) ) ) )
       => ? [Y4: A] :
            ( ( P @ Y4 )
            & ~ ( ord_less @ nat @ ( M @ Y4 ) @ ( plus_plus @ nat @ ( M @ K ) @ N ) ) ) ) ) ).

% ex_has_greatest_nat_lemma
thf(fact_220_t__splay__max_Osimps_I3_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Rr2: tree @ A,L: tree @ A,B2: A,Rl2: tree @ A,C3: A] :
          ( ( ( Rr2
              = ( leaf @ A ) )
           => ( ( splay_878424299ay_max @ A @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
              = ( one_one @ nat ) ) )
          & ( ( Rr2
             != ( leaf @ A ) )
           => ( ( splay_878424299ay_max @ A @ ( node @ A @ L @ B2 @ ( node @ A @ Rl2 @ C3 @ Rr2 ) ) )
              = ( plus_plus @ nat @ ( splay_878424299ay_max @ A @ Rr2 ) @ ( one_one @ nat ) ) ) ) ) ) ).

% t_splay_max.simps(3)
thf(fact_221_t__splay__max_Osimps_I1_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ( ( splay_878424299ay_max @ A @ ( leaf @ A ) )
        = ( one_one @ nat ) ) ) ).

% t_splay_max.simps(1)
thf(fact_222_t__splay__max_Osimps_I2_J,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [L: tree @ A,B2: A] :
          ( ( splay_878424299ay_max @ A @ ( node @ A @ L @ B2 @ ( leaf @ A ) ) )
          = ( one_one @ nat ) ) ) ).

% t_splay_max.simps(2)
thf(fact_223_ex__has__greatest__nat,axiom,
    ! [A: $tType,P: A > $o,K: A,M: A > nat,B2: nat] :
      ( ( P @ K )
     => ( ! [Y4: A] :
            ( ( P @ Y4 )
           => ( ord_less @ nat @ ( M @ Y4 ) @ B2 ) )
       => ? [X4: A] :
            ( ( P @ X4 )
            & ! [Y6: A] :
                ( ( P @ Y6 )
               => ( ord_less_eq @ nat @ ( M @ Y6 ) @ ( M @ X4 ) ) ) ) ) ) ).

% ex_has_greatest_nat
thf(fact_224_t__splay__max_Oelims,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A,Y: nat] :
          ( ( ( splay_878424299ay_max @ A @ X )
            = Y )
         => ( ( ( X
                = ( leaf @ A ) )
             => ( Y
               != ( one_one @ nat ) ) )
           => ( ( ? [L2: tree @ A,B5: A] :
                    ( X
                    = ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) )
               => ( Y
                 != ( one_one @ nat ) ) )
             => ~ ! [L2: tree @ A,B5: A,Rl: tree @ A,C2: A,Rr: tree @ A] :
                    ( ( X
                      = ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) )
                   => ~ ( ( ( Rr
                            = ( leaf @ A ) )
                         => ( Y
                            = ( one_one @ nat ) ) )
                        & ( ( Rr
                           != ( leaf @ A ) )
                         => ( Y
                            = ( plus_plus @ nat @ ( splay_878424299ay_max @ A @ Rr ) @ ( one_one @ nat ) ) ) ) ) ) ) ) ) ) ).

% t_splay_max.elims
thf(fact_225_t__splay__max_Opelims,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: tree @ A,Y: nat] :
          ( ( ( splay_878424299ay_max @ A @ X )
            = Y )
         => ( ( accp @ ( tree @ A ) @ ( splay_1816415694ax_rel @ A ) @ X )
           => ( ( ( X
                  = ( leaf @ A ) )
               => ( ( Y
                    = ( one_one @ nat ) )
                 => ~ ( accp @ ( tree @ A ) @ ( splay_1816415694ax_rel @ A ) @ ( leaf @ A ) ) ) )
             => ( ! [L2: tree @ A,B5: A] :
                    ( ( X
                      = ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) )
                   => ( ( Y
                        = ( one_one @ nat ) )
                     => ~ ( accp @ ( tree @ A ) @ ( splay_1816415694ax_rel @ A ) @ ( node @ A @ L2 @ B5 @ ( leaf @ A ) ) ) ) )
               => ~ ! [L2: tree @ A,B5: A,Rl: tree @ A,C2: A,Rr: tree @ A] :
                      ( ( X
                        = ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) )
                     => ( ( ( ( Rr
                              = ( leaf @ A ) )
                           => ( Y
                              = ( one_one @ nat ) ) )
                          & ( ( Rr
                             != ( leaf @ A ) )
                           => ( Y
                              = ( plus_plus @ nat @ ( splay_878424299ay_max @ A @ Rr ) @ ( one_one @ nat ) ) ) ) )
                       => ~ ( accp @ ( tree @ A ) @ ( splay_1816415694ax_rel @ A ) @ ( node @ A @ L2 @ B5 @ ( node @ A @ Rl @ C2 @ Rr ) ) ) ) ) ) ) ) ) ) ).

% t_splay_max.pelims
thf(fact_226_fold__atLeastAtMost__nat_Opinduct,axiom,
    ! [A: $tType,A0: nat > A > A,A1: nat,A23: nat,A33: A,P: ( nat > A > A ) > nat > nat > A > $o] :
      ( ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ A0 @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ A1 @ ( product_Pair @ nat @ A @ A23 @ A33 ) ) ) )
     => ( ! [F5: nat > A > A,A3: nat,B5: nat,Acc: A] :
            ( ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ F5 @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ A3 @ ( product_Pair @ nat @ A @ B5 @ Acc ) ) ) )
           => ( ( ~ ( ord_less @ nat @ B5 @ A3 )
               => ( P @ F5 @ ( plus_plus @ nat @ A3 @ ( one_one @ nat ) ) @ B5 @ ( F5 @ A3 @ Acc ) ) )
             => ( P @ F5 @ A3 @ B5 @ Acc ) ) )
       => ( P @ A0 @ A1 @ A23 @ A33 ) ) ) ).

% fold_atLeastAtMost_nat.pinduct
thf(fact_227_fold__atLeastAtMost__nat_Opelims,axiom,
    ! [A: $tType,X: nat > A > A,Xa: nat,Xb2: nat,Xc: A,Y: A] :
      ( ( ( set_fo292404081st_nat @ A @ X @ Xa @ Xb2 @ Xc )
        = Y )
     => ( ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ X @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ Xa @ ( product_Pair @ nat @ A @ Xb2 @ Xc ) ) ) )
       => ~ ( ( ( ( ord_less @ nat @ Xb2 @ Xa )
               => ( Y = Xc ) )
              & ( ~ ( ord_less @ nat @ Xb2 @ Xa )
               => ( Y
                  = ( set_fo292404081st_nat @ A @ X @ ( plus_plus @ nat @ Xa @ ( one_one @ nat ) ) @ Xb2 @ ( X @ Xa @ Xc ) ) ) ) )
           => ~ ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ X @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ Xa @ ( product_Pair @ nat @ A @ Xb2 @ Xc ) ) ) ) ) ) ) ).

% fold_atLeastAtMost_nat.pelims
thf(fact_228_fold__atLeastAtMost__nat_Opsimps,axiom,
    ! [A: $tType,F: nat > A > A,A2: nat,B2: nat,Acc2: A] :
      ( ( accp @ ( product_prod @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) ) @ ( set_fo2092542664at_rel @ A ) @ ( product_Pair @ ( nat > A > A ) @ ( product_prod @ nat @ ( product_prod @ nat @ A ) ) @ F @ ( product_Pair @ nat @ ( product_prod @ nat @ A ) @ A2 @ ( product_Pair @ nat @ A @ B2 @ Acc2 ) ) ) )
     => ( ( ( ord_less @ nat @ B2 @ A2 )
         => ( ( set_fo292404081st_nat @ A @ F @ A2 @ B2 @ Acc2 )
            = Acc2 ) )
        & ( ~ ( ord_less @ nat @ B2 @ A2 )
         => ( ( set_fo292404081st_nat @ A @ F @ A2 @ B2 @ Acc2 )
            = ( set_fo292404081st_nat @ A @ F @ ( plus_plus @ nat @ A2 @ ( one_one @ nat ) ) @ B2 @ ( F @ A2 @ Acc2 ) ) ) ) ) ) ).

% fold_atLeastAtMost_nat.psimps
thf(fact_229_fold__atLeastAtMost__nat_Oelims,axiom,
    ! [A: $tType,X: nat > A > A,Xa: nat,Xb2: nat,Xc: A,Y: A] :
      ( ( ( set_fo292404081st_nat @ A @ X @ Xa @ Xb2 @ Xc )
        = Y )
     => ( ( ( ord_less @ nat @ Xb2 @ Xa )
         => ( Y = Xc ) )
        & ( ~ ( ord_less @ nat @ Xb2 @ Xa )
         => ( Y
            = ( set_fo292404081st_nat @ A @ X @ ( plus_plus @ nat @ Xa @ ( one_one @ nat ) ) @ Xb2 @ ( X @ Xa @ Xc ) ) ) ) ) ) ).

% fold_atLeastAtMost_nat.elims
thf(fact_230_fold__atLeastAtMost__nat_Osimps,axiom,
    ! [A: $tType] :
      ( ( set_fo292404081st_nat @ A )
      = ( ^ [F6: nat > A > A,A6: nat,B6: nat,Acc3: A] : ( if @ A @ ( ord_less @ nat @ B6 @ A6 ) @ Acc3 @ ( set_fo292404081st_nat @ A @ F6 @ ( plus_plus @ nat @ A6 @ ( one_one @ nat ) ) @ B6 @ ( F6 @ A6 @ Acc3 ) ) ) ) ) ).

% fold_atLeastAtMost_nat.simps
thf(fact_231_complete__interval,axiom,
    ! [A: $tType] :
      ( ( condit1037483654norder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,P: A > $o] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( P @ A2 )
           => ( ~ ( P @ B2 )
             => ? [C2: A] :
                  ( ( ord_less_eq @ A @ A2 @ C2 )
                  & ( ord_less_eq @ A @ C2 @ B2 )
                  & ! [X6: A] :
                      ( ( ( ord_less_eq @ A @ A2 @ X6 )
                        & ( ord_less @ A @ X6 @ C2 ) )
                     => ( P @ X6 ) )
                  & ! [D5: A] :
                      ( ! [X4: A] :
                          ( ( ( ord_less_eq @ A @ A2 @ X4 )
                            & ( ord_less @ A @ X4 @ D5 ) )
                         => ( P @ X4 ) )
                     => ( ord_less_eq @ A @ D5 @ C2 ) ) ) ) ) ) ) ).

% complete_interval
thf(fact_232_order_Onot__eq__order__implies__strict,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( A2 != B2 )
         => ( ( ord_less_eq @ A @ A2 @ B2 )
           => ( ord_less @ A @ A2 @ B2 ) ) ) ) ).

% order.not_eq_order_implies_strict
thf(fact_233_ord__eq__less__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C3: B] :
          ( ( A2
            = ( F @ B2 ) )
         => ( ( ord_less @ B @ B2 @ C3 )
           => ( ! [X4: B,Y4: B] :
                  ( ( ord_less @ B @ X4 @ Y4 )
                 => ( ord_less @ A @ ( F @ X4 ) @ ( F @ Y4 ) ) )
             => ( ord_less @ A @ A2 @ ( F @ C3 ) ) ) ) ) ) ).

% ord_eq_less_subst
thf(fact_234_ord__less__eq__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > B,C3: B] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ( F @ B2 )
              = C3 )
           => ( ! [X4: A,Y4: A] :
                  ( ( ord_less @ A @ X4 @ Y4 )
                 => ( ord_less @ B @ ( F @ X4 ) @ ( F @ Y4 ) ) )
             => ( ord_less @ B @ ( F @ A2 ) @ C3 ) ) ) ) ) ).

% ord_less_eq_subst
thf(fact_235_order__less__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C3: B] :
          ( ( ord_less @ A @ A2 @ ( F @ B2 ) )
         => ( ( ord_less @ B @ B2 @ C3 )
           => ( ! [X4: B,Y4: B] :
                  ( ( ord_less @ B @ X4 @ Y4 )
                 => ( ord_less @ A @ ( F @ X4 ) @ ( F @ Y4 ) ) )
             => ( ord_less @ A @ A2 @ ( F @ C3 ) ) ) ) ) ) ).

% order_less_subst1
thf(fact_236_order__less__subst2,axiom,
    ! [A: $tType,C: $tType] :
      ( ( ( order @ C @ ( type2 @ C ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > C,C3: C] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ C @ ( F @ B2 ) @ C3 )
           => ( ! [X4: A,Y4: A] :
                  ( ( ord_less @ A @ X4 @ Y4 )
                 => ( ord_less @ C @ ( F @ X4 ) @ ( F @ Y4 ) ) )
             => ( ord_less @ C @ ( F @ A2 ) @ C3 ) ) ) ) ) ).

% order_less_subst2
thf(fact_237_lt__ex,axiom,
    ! [A: $tType] :
      ( ( no_bot @ A @ ( type2 @ A ) )
     => ! [X: A] :
        ? [Y4: A] : ( ord_less @ A @ Y4 @ X ) ) ).

% lt_ex
thf(fact_238_gt__ex,axiom,
    ! [A: $tType] :
      ( ( no_top @ A @ ( type2 @ A ) )
     => ! [X: A] :
        ? [X12: A] : ( ord_less @ A @ X @ X12 ) ) ).

% gt_ex
thf(fact_239_neqE,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( X != Y )
         => ( ~ ( ord_less @ A @ X @ Y )
           => ( ord_less @ A @ Y @ X ) ) ) ) ).

% neqE
thf(fact_240_neq__iff,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( X != Y )
          = ( ( ord_less @ A @ X @ Y )
            | ( ord_less @ A @ Y @ X ) ) ) ) ).

% neq_iff
thf(fact_241_order_Oasym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ~ ( ord_less @ A @ B2 @ A2 ) ) ) ).

% order.asym
thf(fact_242_dense,axiom,
    ! [A: $tType] :
      ( ( dense_order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ? [Z2: A] :
              ( ( ord_less @ A @ X @ Z2 )
              & ( ord_less @ A @ Z2 @ Y ) ) ) ) ).

% dense
thf(fact_243_less__imp__neq,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ( X != Y ) ) ) ).

% less_imp_neq
thf(fact_244_less__asym,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ~ ( ord_less @ A @ Y @ X ) ) ) ).

% less_asym
thf(fact_245_less__asym_H,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ~ ( ord_less @ A @ B2 @ A2 ) ) ) ).

% less_asym'
thf(fact_246_less__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A,Z5: A] :
          ( ( ord_less @ A @ X @ Y )
         => ( ( ord_less @ A @ Y @ Z5 )
           => ( ord_less @ A @ X @ Z5 ) ) ) ) ).

% less_trans
thf(fact_247_less__linear,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
          | ( X = Y )
          | ( ord_less @ A @ Y @ X ) ) ) ).

% less_linear
thf(fact_248_less__irrefl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A] :
          ~ ( ord_less @ A @ X @ X ) ) ).

% less_irrefl
thf(fact_249_ord__eq__less__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A] :
          ( ( A2 = B2 )
         => ( ( ord_less @ A @ B2 @ C3 )
           => ( ord_less @ A @ A2 @ C3 ) ) ) ) ).

% ord_eq_less_trans
thf(fact_250_ord__less__eq__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C3: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( B2 = C3 )
           => ( ord_less @ A @ A2 @ C3 ) ) ) ) ).

% ord_less_eq_trans
thf(fact_251_dual__order_Oasym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ~ ( ord_less @ A @ A2 @ B2 ) ) ) ).

% dual_order.asym
thf(fact_252_less__imp__not__eq,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ( X != Y ) ) ) ).

% less_imp_not_eq
thf(fact_253_less__not__sym,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X: A,Y: A] :
          ( ( ord_less @ A @ X @ Y )
         => ~ ( ord_less @ A @ Y @ X ) ) ) ).

% less_not_sym
thf(fact_254_less__induct,axiom,
    ! [A: $tType] :
      ( ( wellorder @ A @ ( type2 @ A ) )
     => ! [P: A > $o,A2: A] :
          ( ! [X4: A] :
              ( ! [Y6: A] :
                  ( ( ord_less @ A @ Y6 @ X4 )
                 => ( P @ Y6 ) )
             => ( P @ X4 ) )
         => ( P @ A2 ) ) ) ).

% less_induct
thf(fact_255_antisym__conv3,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Y: A,X: A] :
          ( ~ ( ord_less @ A @ Y @ X )
         => ( ( ~ ( ord_less @ A @ X @ Y ) )
            = ( X = Y ) ) ) ) ).

% antisym_conv3

%----Subclasses (4)
thf(subcl_Orderings_Olinorder___HOL_Otype,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ( type @ A @ ( type2 @ A ) ) ) ).

thf(subcl_Orderings_Olinorder___Orderings_Oord,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ( ord @ A @ ( type2 @ A ) ) ) ).

thf(subcl_Orderings_Olinorder___Orderings_Oorder,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ( order @ A @ ( type2 @ A ) ) ) ).

thf(subcl_Orderings_Olinorder___Orderings_Opreorder,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ( preorder @ A @ ( type2 @ A ) ) ) ).

%----Type constructors (22)
thf(tcon_fun___Orderings_Opreorder,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( preorder @ A8 @ ( type2 @ A8 ) )
     => ( preorder @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( order @ A8 @ ( type2 @ A8 ) )
     => ( order @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Oord,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( ord @ A8 @ ( type2 @ A8 ) )
     => ( ord @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_Nat_Onat___Conditionally__Complete__Lattices_Oconditionally__complete__linorder,axiom,
    condit1037483654norder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Ostrict__ordered__ab__semigroup__add,axiom,
    strict2144017051up_add @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Oordered__cancel__ab__semigroup__add,axiom,
    ordere223160158up_add @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add__imp__le,axiom,
    ordere236663937imp_le @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Divides_Osemiring__numeral__div,axiom,
    semiring_numeral_div @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__semidom,axiom,
    linordered_semidom @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Owellorder,axiom,
    wellorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Opreorder_1,axiom,
    preorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
    linorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Ono__top,axiom,
    no_top @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oorder_2,axiom,
    order @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oord_3,axiom,
    ord @ nat @ ( type2 @ nat ) ).

thf(tcon_Set_Oset___Orderings_Opreorder_4,axiom,
    ! [A7: $tType] : ( preorder @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_5,axiom,
    ! [A7: $tType] : ( order @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oord_6,axiom,
    ! [A7: $tType] : ( ord @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_HOL_Obool___Orderings_Opreorder_7,axiom,
    preorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Olinorder_8,axiom,
    linorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oorder_9,axiom,
    order @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oord_10,axiom,
    ord @ $o @ ( type2 @ $o ) ).

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X: A,Y: A] :
      ( ( if @ A @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X: A,Y: A] :
      ( ( if @ A @ $true @ X @ Y )
      = X ) ).

%----Free types (1)
thf(tfree_0,hypothesis,
    linorder @ a @ ( type2 @ a ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    linorder_bst @ a @ ( splay_859309299xt_s_t @ a @ f @ a2 ) ).

%------------------------------------------------------------------------------